Decorator pattern added, close issue #2