     
     // should be used weak reference for this closure
     func addURL(url: URL) {
+        
+        if !self.isLoaded {
+            self.load()
+        }
+        
         self.logDebug("addURL begin queue size: \(self.size.value). local queue size \(self.queue.count)")
         if self.pointer.value != nil {
             // read it from file

                self.fileHandler?.seek(toFileOffset: pointer)
            }
        }
        
        self.refreshMemoryQueue()
    }
    
    // can be called for initial adding queue to file

    }
    
    func load(){
        
        guard !self.isLoaded else {
            return
        }
        
        self.logDebug("load is started")
        self.pointer.value =  UserDefaults.standardDefaults.uInt64ForKey(self.positionSettingName)
        self.size.value = UserDefaults.standardDefaults.objectForKey(self.sizeSettingName) as? Int ?? 0
