add facade
proxy pattern