methodInvocation refactoring + new tests