public function extend($fields, $closure, $message) {

		if(false === is_array($fields)) {
			$fields = [(string) $fields];
		}

		if(false === (gettype($closure) === 'object')) {
			return trigger_error(sprintf('Argument 2 passed to %s() must be a valid callback function, "%s" given', __METHOD__, gettype($closure)), E_USER_ERROR);
		}

		if(false === is_string($message)) {
			return trigger_error(sprintf('Argument 3 passed to %s() must be of the type string, "%s" given', __METHOD__, gettype($message)), E_USER_ERROR);
		}

		foreach($fields as $field) {
			$this -> addRule(null, $field, null, $closure, $message);
		}
	}