 
 private final class DecryptorEngineV3 {
     private let buffer = OverflowingBuffer(capacity: V3.hmacSize)
-    private var hmac: HMACV3
-    private var engine: Engine
+    private let hmac: HMACV3
+    private let engine: Engine
 
     init(encryptionKey: Data, hmacKey: Data, iv: Data, header: Data) {
         precondition(encryptionKey.count == V3.keySize)

    /// "the latest encryptor" with a password, use `Encryptor` instead.
    @objc(RNEncryptorV3)
    public final class EncryptorV3 : NSObject, RNCryptorType {
        private var engine: Engine
        private var hmac: HMACV3
        private var pendingHeader: Data?

        /// Creates and returns an encryptor.

        assert(result == CCCryptorStatus(kCCSuccess), "RNCRYPTOR BUG. PLEASE REPORT. (\(result)")

        buffer.count = dataOutMoved
        return buffer
    }

    func finalData() -> Data {
