public function viewBody() {

		// Get sticky values
		$sticky_values = hypePrototyper()->prototype->getStickyValues($this->action);
		hypePrototyper()->prototype->clearStickyValues($this->action);

		// Get validation errors and messages
		$validation_status = hypePrototyper()->prototype->getValidationStatus($this->action);
		hypePrototyper()->prototype->clearValidationStatus($this->action);

		// Prepare fields
		$i = 0;
		foreach ($this->fields as $field) {

			if (!$field instanceof Field) {
				continue;
			}

			if ($field->getInputView() === false) {
				continue;
			}

			$shortname = $field->getShortname();
			if (isset($sticky_values[$shortname])) {
				$field->setStickyValue($sticky_values[$shortname]);
			}

			if (isset($validation_status[$shortname])) {
				$field->setValidation($validation_status[$shortname]['status'], $validation_status[$shortname]['messages']);
			}

			$output .= $field->viewInput(array(
				'index' => $i,
				'entity' => $this->entity,
			));

			$i++;
		}

		$submit = elgg_view('prototyper/input/submit', array(
			'entity' => $this->entity,
			'action' => $this->action,
		));

		$output .= elgg_format_element('div', array(
			'class' => 'elgg-foot',
				), $submit);

		return $output;
	}