DynamicProxy refactor to use cached reflection