public function delete($pWithChilds = false)
    {
        Observer::dispatch(Observer::EVENT_ITEM_DELETE_BEFORE, array(
            'item' => $this
        ));

        $delete = new Delete($this);
        $delete->commit($pWithChilds);

        Observer::dispatch(Observer::EVENT_ITEM_DELETE_AFTER, array(
            'item' => $this
        ));

        return $this;
    }