pattern design:proxy