public function authenticate($username, $password, $type = self :: AUTH_ANY) {

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

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

        if(false === defined($type)) {
			return trigger_error(sprintf('Argument 3 passed to %s() is not a valid authentication type', __METHOD__), E_USER_ERROR);
        }

		$this -> options[CURLOPT_USERPWD]  = sprintf('%s:%s', $username, $password);
		$this -> options[CURLOPT_HTTPAUTH] = constant($type);

		return $this;
	}