final public function call($providerName)
    {

        $configProviderClass = "SMSFactory\\Config\\$providerName"; // note: no leading backslash
        $providerClass = "SMSFactory\\Providers\\$providerName"; // note: no leading backslash

        if (class_exists($providerClass) === true) {

            // inject configurations
            return new $providerClass(new $configProviderClass($this->config[$providerName]));
        } else {
            throw new BaseException('SMS', 'Provider ' . $providerName . ' does not exist', 500);
        }
    }