public function update($primary_value, $data)
    {
        $data = $this->_do_pre_update($data);

        if ($data !== FALSE)
        {
            $result = $this->_database->where($this->primary_key, $primary_value)
                ->set($data)
                ->update($this->_table);

            $this->trigger('after_update', array($data, $result));

            return $result;
        }
        else
        {
            return FALSE;
        }
    }