completed 'high order functions'