added dynamicProxy pattern