functionDecorator