public function handle() {

		try {
			if ($this->validate()) {
				$result = $this->update();
			}
		} catch (\hypeJunction\Exceptions\ActionValidationException $ex) {
			register_error(elgg_echo('prototyper:validate:error'));
			forward(REFERER);
		} catch (\IOException $ex) {
			register_error(elgg_echo('prototyper:io:error', array($ex->getMessage())));
			forward(REFERER);
		} catch (\Exception $ex) {
			register_error(elgg_echo('prototyper:handle:error', array($ex->getMessage())));
			forward(REFERER);
		}

		if ($result) {
			system_message(elgg_echo('prototyper:action:success'));
			forward($this->entity->getURL());
		} else {
			register_error(elgg_echo('prototyper:action:error'));
			forward(REFERER);
		}
	}