1st pass at converting from inheritance to decorator pattern