public function load($pArgs = array())
    {
        if (! is_array($pArgs)) {
            return $this->loadById($pArgs);
        }

        $select = new Select($this->_dbContainer);

        if (isset($pArgs[DbInterface::FILTER_ORDER])) {
            $select->addOrder($pArgs[DbInterface::FILTER_ORDER]);
        } else {
            $select->addOrder(array(
                $this->getIdField() => Db::ORDER_DESC
            ));
        }

        if (isset($pArgs[DbInterface::FILTER_CONDITIONS]) and  $pArgs[DbInterface::FILTER_CONDITIONS] instanceof Conditions) {
            $select->loadConditions($pArgs[DbInterface::FILTER_CONDITIONS]);
        }

        $select->findOne();
        if ($select->count()) {
            $fields = $select->fetchAll(true);
        } else {
            $fields = array();
        }

        $this->_fields     = $fields;
        $this->_origFields = $fields;

        $idField = $this->getIdField();
        if (isset($this->_fields[$idField])) {
            $this->setId($this->_fields[$idField]);
        }

        return $this;
    }