protected function downloadFile() {
        // if the file exists already, return out, file already was downloaded
        if (file_exists($this->downloadFilePath())) {
            return;
        }
        
        // download the file
        $file = file_get_contents($this->url());

        // if it was not possible to get the file content, throw a new error
        if ($file === false) {
            throw new \Th\FileDownloader\Exceptions\DownloadException(99);
        }

        // try writing the file to disk
        $downloadResult = file_put_contents($this->downloadFilePath(), $file);

        // if it is not possible to download the file, return
        if ($downloadResult === false) {
            throw new \Th\FileDownloader\Exceptions\DownloadException(99);
        }
    }