decorator class