more invoker refactoring