wrapper design pattern example