we can derive Functor now