playing with functor examples