add Proxy pattern