dynamic proxy support
memoization