protected function _renderHeaders($options, $tag = 'thead') {
		$th = array();
		foreach ($options['columns'] as $name => $thOptions) {
			$thOptions = Hash::merge(
				$this->__colDefaults,
				array('th' => $options['th']['attrs']),
				$thOptions
			);

			if (false !== $options['paginate'] && false !== $thOptions['sort']) {
				if (is_bool($thOptions['sort'])) {
					$thOptions['sort'] = $name;
				}
				if (is_string($thOptions['sort'])) {
					$thOptions['sort'] = array('key' => $thOptions['sort']);
				}
				$thOptions['sort'] = array_merge(array('options' => array()), $thOptions['sort']);
				$name = $this->Paginator->sort($thOptions['sort']['key'], $name, $thOptions['sort']['options']);
			}

			$th[] = $this->Html->useTag(
				'tableheader',
				$this->_parseAttributes($thOptions['th']),
				$name
			);
		}

		return sprintf(
			"\t<%s>\n\t\t%s\n\t</%s>",
			$tag,
			$this->Html->useTag('tablerow', null, "\n\t\t\t" . implode("\n\t\t\t", $th) . "\n\t\t"),
			$tag
		);
	}