add proxy pattern and dynamic proxy pattern