add Natural Transformations and make functor composition a bifunctor