protected void instrumentClass(Class<?> testClass, Object testInstance) throws IllegalArgumentException,
IllegalAccessException, InstantiationException {
Field[] fields = testClass.getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true);
Intercept interceptor = field.getAnnotation(Intercept.class);
if (interceptor != null) {
provideProxyWrapperFor(interceptor.interceptor(), null, field, testInstance);
} else {
Duration duration = field.getAnnotation(Duration.class);
if (duration != null) {
provideProxyWrapperFor(duration.interceptor(), duration.timeInMillis(), field, testInstance);
}