public function listing($contents = array(), $attributes = array(), $element = 'ul', $childElement = 'li')
		{

			// Create list
			$list = \HtmlObject\Element::$element('', $attributes);

			// Array?
			if (!is_null($contents) && !is_array($contents)) {
				$contents = array($contents);
			}

			// Loop contents
			foreach ($contents as $li)  {

				// Is it an element?
				if (is_string($li)) {

					// Create li containing that...
					$realLi = \HtmlObject\Element::$childElement($li);
					$list->addChild($realLi);

				} elseif (is_subclass_of($li, "\\HtmlObject\\Traits\\Tag")) {

					// An li tag?
					if ($li->getTag() !== $childElement) {

						// Wrap it!
						$realLi = \HtmlObject\Element::$childElement($li);
						$list->addChild($realLi);

					} else {

						// Add it as it is
						$list->addChild($li);

					}

				} else {

					// Not good.
					throw new \Exception("Invalid contents for listing. ", 1);					

				}

			}



			return $list;

		}