public function getList($list)
    {
        if (isset(self::$refs[$list])) {
            self::$refs[$list]['counter']++;
            return \Erebot\Module\Wordlists\Proxy(
                self::$refs[$list]['instance']
            );
        }

        $lists = $this->getAvailableLists();
        if (!in_array($list, $lists)) {
            throw new \Erebot\Module\Wordlists\BadListNameException($list);
        }

        $listObject = new \Erebot\Module\Wordlists\Wordlist(
            $this,
            $list,
            self::$cache[$list]
        );

        self::$refs[$list] = array(
            'counter'   => 1,
            'instance'  => $listObject,
        );
        return new \Erebot\Module\Wordlists\Proxy($listObject);
    }