Added functor parts checking and linking
(Not satisfied however, some refactoring to do)