public function getKey($index = 0) {
    $keys = $this->getKeys();

    if (!is_integer($index)) {
      throw new \InvalidArgumentException();
    }
    if ($index < 0 || $index >= count($keys)) {
      throw new \OutOfBoundsException();
    }
    return $keys[$index];
  }