code: func NewActor(v2Actor V2Actor, v3Actor V7Actor, sharedActor SharedActor) *Actor {
  	actor := &Actor{
  		SharedActor: sharedActor,
  		V2Actor:     v2Actor,
  		V7Actor:     v3Actor,
  
  		startWithProtocol: regexp.MustCompile(ProtocolRegexp),
  		urlValidator:      regexp.MustCompile(URLRegexp),
  	}
  
  	actor.PushPlanFuncs = []UpdatePushPlanFunc{
  		SetupApplicationForPushPlan,
  		SetupDockerImageCredentialsForPushPlan,
  		SetupBitsPathForPushPlan,
  		actor.SetupAllResourcesForPushPlan,
  		SetupNoStartForPushPlan,
  		SetupSkipRouteCreationForPushPlan,
  		SetupScaleWebProcessForPushPlan,
  		SetupUpdateWebProcessForPushPlan,
  	}
  
  	actor.ChangeApplicationFuncs = []ChangeApplicationFunc{
  		actor.UpdateApplication,
  		actor.UpdateRoutesForApplication,
  		actor.ScaleWebProcessForApplication,
  		actor.UpdateWebProcessForApplication,
  		actor.CreateBitsPackageForApplication,
  		actor.CreateDockerPackageForApplication,
  	}
  
  	actor.StartFuncs = []ChangeApplicationFunc{
  		actor.StagePackageForApplication,
  		actor.SetDropletForApplication,
  	}
  
  	actor.NoStartFuncs = []ChangeApplicationFunc{
  		actor.StopApplication,
  	}
  
  	return actor
  }
docs: // NewActor returns a new actor.