Refactor NodeProvisioner to allow for extension of strategies

`@since TODO` placeholder