decorator, not alternative