proxy and decorator project