use curry2 to remove boilerplate

this one i think we want as optimized as possible, so better off with the manual curry here IMO