Refactor NodeProvisioner to allow for extension of strategies

Intentionally nonstatic?