     }
     
     func removeAll() {
-        hash.removeAll()
+        for key in hash.keys where key.hasPrefix("Statistics") {
+            hash.removeValue(forKey: key)
+        }
     }
 }
 

        Statistics.version = "1.0.0"
        Statistics.launch(with: backend)
        Statistics.update(Statistics.Data.LaunchCount.self)
        XCTAssertEqual(Statistics.Data.LaunchCount.value, 1)
        
        Statistics.reset(for: Statistics.Data.LaunchCount.self)
        XCTAssertNil(Statistics.Data.LaunchCount.value)
    }
    
    func testRemoveDataAll() {
        let backend = MockBackend()
        Statistics.version = "1.0.0"
        Statistics.launch(with: backend)
        Statistics.update(Statistics.Data.LaunchCount.self)
        XCTAssertEqual(Statistics.Data.LaunchCount.value, 1)
        
        Statistics.reset()
        XCTAssertNil(Statistics.Data.LaunchCount.value)
    }
}

    struct LaunchCount: StatisticsData {
        public typealias Value = IncrementalValueController
        public static let key = "launchCount"
    }
    struct OtherCount: StatisticsData {
        public typealias Value = IncrementalValueController
        public static let key = "otherCount"
    }
}

