Refactor NodeProvisioner to allow for extension of strategies