Implementation of the Decorator pattern