rework of built in functions, now higher order functions