public function authenticate(array $ops) {
    $url = $this->url() . '/tokens';
    $envelope = array(
      'auth' => $ops,
    );

    $body = json_encode($envelope);

    $headers = array(
      'Content-Type' => 'application/json',
      'Accept' => self::ACCEPT_TYPE,
      'Content-Length' => strlen($body),
    );

    //print $body . PHP_EOL;

    $client = \HPCloud\Transport::instance();

    $response = $client->doRequest($url, 'POST', $headers, $body);

    $this->handleResponse($response);


    return $this->token();
  }