Using the decorator pattern