remove Function.bind and add currying