add in the decorator pattern for future reference.