introduced functional model for dynamic proxies
refactored internal code and tests to use FunctionalReflection