method invocator factory