ENH: cleaning up build warning and using polymorphism to clean up the calling code

3 parameter version of CreateNewNode in base class calls 2 parameter version. If the 3 param isn't overrided in the derived classes, the 2 param version will be called (as per existing structure).