So lazy deploy == _createService. I'd be inclined to enforce some kind of naming convention so that the connection between the method call and the corresponding lazy call is clear and explicit, e.g. deploy -> lazyDeploy? Also, in this specific case, the deploy semantic is slightly more complex than just creating a service. For instance, if numUnits > 0 deploy also creates units.