add design pattern proxy