Make Functor universal