Added decorator pattern