renamed high order functions to first class functions