public function containers($limit = 0, $marker = NULL) {

    $url = $this->url() . '?format=json';

    if ($limit > 0) {
      $url .= sprintf('&limit=%d', $limit);
    }
    if (!empty($marker)) {
      $url .= sprintf('&marker=%d', $marker);
    }

    $containers = $this->get($url);

    $containerList = array();
    foreach ($containers as $container) {
      $cname = $container['name'];
      $containerList[$cname] = Container::newFromJSON($container, $this->token(), $this->url());

      if (!empty($this->cdnContainers[$cname])) {
        $cdnList = $this->cdnContainers[$cname];
        $containerList[$cname]->useCDN($cdnList['url'], $cdnList['sslUrl']);
      }
    }

    return $containerList;
  }