pattern proxy