Refactor FunctionObjects