add _.decorate and its test cases