code: protected final void doStart(Collection<? extends Location> locations) {
  
          ServiceStateLogic.setExpectedState(this, Lifecycle.STARTING);
          try {
              preStart();
              driver.start();
              log.info("Entity {} was started with driver {}", new Object[]{this, driver});
  
              postDriverStart();
              connectSensors();
              postStart();
              ServiceStateLogic.setExpectedState(this, Lifecycle.RUNNING);
          } catch (Throwable t) {
              ServiceStateLogic.setExpectedState(this, Lifecycle.ON_FIRE);
              log.error("Error error starting entity {}", this);
              throw Exceptions.propagate(t);
          }
      }
docs: It is a temporal method. It will be contains the start effector body. It will be
  moved to LifeCycle class based on Task. It is the first approach.
  It does not start the entity children.