add class and instances for Functor