Remove forward declarations of function objects
Merge branch 'fix-multiple-definition-linker-error' into dev