Split into 3 files: functor, functor application and test.
Added functor parameter PR.