public function save()
    {

        //Set Defaults
        $this->setDefaultProperties();

        //Update timestamps
        $this->updateTimestamps();

        //Fire "before" events
        if (!$this->fireBeforeSaveEvent($this)) {
            return false;
        }

        $updating = $this->exists();
        if ($updating && !$this->fireBeforeUpdateEvent($this)) {
            return false;
        } elseif (!$this->fireBeforeCreateEvent($this)) {
            return false;
        }

        //Save or update
        $result = DB::store($this->bean);

        //fire "after" events
        $this->fireAfterSaveEvent($result);
        if ($updating) {
            $this->fireAfterUpdateEvent($result);
        } else {
            $this->fireAfterCreateEvent($result);
        }
        return $result;
    }