 
 // D = a data struct
 // H = a header struct
-class DataStore<D, H>  {
+
+class DataStore<D, H: DataStoreHeader>  {
     
     // #pragma mark ----------------------------------------------------------------
     

    
    var endOfFile: CUnsignedLongLong = 0;
    var unusedDataSegments =  Dictionary<CUnsignedLongLong,Bool>()
    
    
    
    // #pragma mark ----------------------------------------------------------------
    

    }
    
    // subclases have to override
    func deleteData(aID: UID) -> CUnsignedLongLong {
        
        var pos = self.seekToFileID(aID)
        
