MethodFactory refactoring