Identity functor framework
Merge