renamed CommandExecutor to FunctionExecutor