add Decorator Patern