> abstract class for decorators
> some code cleanup