Modifying Functor defintion and adding fmap method to public API