/**
  * @param AbstractItem $existedItem
  * @param array $data
  * @return AbstractItem|null
  */
 protected function _updateItem(AbstractItem $existedItem, array $data)
 {
     $previousId = $existedItem->getId();
     $foundItem = $this->_getItem($existedItem->getArrayCopy());
     if (empty($foundItem)) {
         return null;
     }
     $foundItem->update($data);
     if (isset($this->_storage[$previousId])) {
         unset($this->_storage[$previousId]);
     }
     $this->_storage[$foundItem->getId()] = $foundItem;
     return $foundItem;
 }