split internal method calling helper functions into specialised 0-, 1-, 2- args versions to apply the method call optimisation to them
merge