         var trainingDirectoryName = "train"
         var validationDirectoryName = "test"
         var filename = "wikitext-103"
+        var encodedFileName: String? = nil
         var fileExtension = "tgz"
     }
 
     private struct WikiText2Details: TextUnsupervisedVariantDetails {
         var variant = TextUnsupervisedVariant.wikiText2
-        var location = URL(string: "https://s3.amazonaws.com/fast-ai-nlp/")!
+        var location = URL(string: "https://storage.googleapis.com/s4tf-hosted-binaries/datasets/WikiText2/")!
         var trainingDirectoryName = "train"
         var validationDirectoryName = "test"
         var filename = "wikitext-2"
+        var encodedFileName: String? = "wikitext-2-encoded"
         var fileExtension = "tgz"
     }
 
     public let trainingDataset: LanguageModelDataset<[[Int]]>
     public let validationDataset: LanguageModelDataset<[[Int]]>
-    public let bpe: BytePairEncoder
+    public let bpe: BytePairEncoder?
     public let variant: TextUnsupervisedVariant
     private let variantDetails: TextUnsupervisedVariantDetails
 

    }

    public init(
        bpe: BytePairEncoder,
        variant: TextUnsupervisedVariant = TextUnsupervisedVariant.wikiText2,
        trainingBatchSize: Int = 8, validationBatchSize: Int = 4, sequenceLength: Int = 1024,
        trainingDocumentCount: Int = 4, validationDocumentCount: Int = 4

    }

    private static func downloadIfNotPresent(
        to directory: URL, variantDetails: TextUnsupervisedVariantDetails, downloadEncodedFile: Bool
    ) {
        let downloadPath = directory.appendingPathComponent(variantDetails.variant.rawValue).path
        let directoryExists = FileManager.default.fileExists(atPath: downloadPath)
