protected function &_wakeupComponent(__ComponentSpec $component_spec)
 {
     $component_name = $component_spec->getName();
     if ($component_spec->isArray()) {
         $component_index = $this->_getNextIndex($component_name);
     } else {
         $component_index = null;
     }
     //if the component exists, will get it from the component handler
     if ($this->_component_handler->hasComponent($component_name, $component_index)) {
         $component = $this->_component_handler->getComponent($component_name, $component_index);
     } else {
         $component = $this->_createComponent($component_spec, $component_index);
         $this->_created_components[$component->getId()] = true;
     }
     return $component;
 }