code: func (agent *ecsAgent) start() int {
  	sighandlers.StartDebugHandler()
  
  	containerChangeEventStream := eventstream.NewEventStream(containerChangeEventStreamName, agent.ctx)
  	credentialsManager := credentials.NewManager()
  	state := dockerstate.NewTaskEngineState()
  	imageManager := engine.NewImageManager(agent.cfg, agent.dockerClient, state)
  	client := ecsclient.NewECSClient(agent.credentialProvider, agent.cfg, agent.ec2MetadataClient)
  
  	agent.initializeResourceFields(credentialsManager)
  	return agent.doStart(containerChangeEventStream, credentialsManager, state, imageManager, client)
  }
docs: // start starts the ECS Agent