add proxy pattern