public function update() {

		hypePrototyper()->prototype->saveStickyValues($this->action);

		// first handle attributes
		foreach ($this->fields as $field) {
			if ($field->getDataType() == 'attribute') {
				$this->entity = $field->handle($this->entity);
			}
		}

		if (!$this->entity->save()) {
			return false;
		}

		foreach ($this->fields as $field) {
			if ($field->getDataType() !== 'attribute') {
				$this->entity = $field->handle($this->entity);
			}
		}

		if (!$this->entity->save()) {
			return false;
		}

		hypePrototyper()->prototype->clearStickyValues($this->action);
		return $this->entity;
	}