public function createComponentsAsyncMessage(array &$components, $startup_message = false)
 {
     //create async message:
     $return_value = new __AsyncMessage();
     $commands = array();
     foreach ($components as &$component) {
         if ($component instanceof __IComponent) {
             if ($startup_message) {
                 $commands = array_merge($commands, $this->_getComponentSetupCommands($component));
             } else {
                 $commands = array_merge($commands, $this->_getComponentCommands($component));
             }
         }
     }
     $return_value->setCommands($commands);
     return $return_value;
 }