finish #6 functions
finish #7 conditionals
finish #8 higher order functions