public function listCurrencies() {
    if (is_null($this->currencyCodes)) {
      $directory = new \RecursiveDirectoryIterator($this->getCurrencyResourceDirectory());
      foreach ($directory as $item) {
        if (preg_match('#^...\.json$#', $item->getFilename())) {
          $this->currencyCodes[] = substr($item->getFilename(), 0, 3);
        }
      }
    }

    return $this->currencyCodes;
  }