proxy design pattern added