public function registerType($type, $classname, $options = array()) {

		if (!class_exists($classname) || !is_callable(array($classname, 'getDataType'))) {
			return;
		}

		$data_type = call_user_func(array($classname, 'getDataType'));

		$options = (array) $options;
		$options['type'] = $type;
		$options['class_name'] = $classname;
		$options['data_type'] = $data_type;
		
		$this->types[$data_type][$type] = $options;
		
	}