@Override
 protected synchronized void evolve(XBaseTaskExecutor<B> evolvedTask) {
   super.evolve(evolvedTask);
   if (evolvedTask instanceof XMgrTaskExecutor) {
     ((XMgrTaskExecutor) evolvedTask).setTaskMgr(mTaskMgr);
     ((XMgrTaskExecutor) evolvedTask).setSpeedCalculator(mSpeedCalculator);
   }
 }
 @Override
 public void setSpeedCalculator(XSpeedCalculator speedCalculator) {
   mSpeedCalculator = speedCalculator;
   XBaseTaskExecutor<B> evolvedTask = getEvolvedTask();
   if (evolvedTask != null && evolvedTask instanceof XMgrTaskExecutor) {
     ((XMgrTaskExecutor) evolvedTask).setSpeedCalculator(speedCalculator);
   }
 }
 @Override
 public void setTaskMgr(XTaskMgr<XMgrTaskExecutor<B>, B> taskMgr) {
   mTaskMgr = taskMgr;
   XBaseTaskExecutor<B> evolvedTask = getEvolvedTask();
   if (evolvedTask != null && evolvedTask instanceof XMgrTaskExecutor) {
     ((XMgrTaskExecutor) evolvedTask).setTaskMgr(taskMgr);
   }
 }