Change signature Functor& to const Functor &
Add tests