protected function getFormatter($chan)
    {
        $cls = $this->getFactory('!Styling');
        if ($chan === false) {
            return new $cls($this->translator);
        } elseif ($chan !== null) {
            $config = $this->connection->getConfig($chan);
            try {
                return new $cls($config->getTranslator(get_called_class()));
            } catch (\Erebot\Exception $e) {
            // The channel lacked a specific config. Use the cascade.
            }
            unset($config);
        }

        $config = $this->connection->getConfig($this->channel);
        try {
            return new $cls($config->getTranslator(get_called_class()));
        } catch (\Erebot\Exception $e) {
            // The channel lacked a specific config. Use the cascade.
        }
        unset($config);

        $config = $this->connection->getConfig(null);
        return new $cls($config->getTranslator(get_called_class()));
    }