     private var decks = [Deck]()
     // private var flashcards = [Flashcard]()
     private let realm = try! Realm()
+    // dzięki deckDBChanged talie będą wczytywane z bazy tylko w przypadku zmiany tabeli Deck
+    // !!! Zmiana tabeli Flashcard nie jest brana pod uwagę
+    private var deckDBChanged: Bool = true
     
     init(){
+        
         // usuwanie tylko wtedy gdy jest internet i najpewniej nie w tym miejscu. Na razie ze względu na 
         // DummyData
         // TODO: relocate removeDecksFromDatabase() and check for internet connection
         removeDecksFromDatabase()
-        
     }
     
     func decks(sorted:Bool )->[Deck] {
         
-        // load all Deck from database to memory, if not loaded
-        loadDecksFromDatabase()
+        // wczytuje talie jeśli nastąpiła zmiana w tabeli talii w bazie lub puste
+        if deckDBChanged || decks.isEmpty {
+            loadDecksFromDatabase()
+        }
 
         if (sorted){
             return decks.sort {

            realm.add(newDeck)
        }
        
        return id
    }


            try! realm.write {
                updatingDeck.name = deck.name
            }
            
            deckDBChanged = true
            
        }else {
            DataManagerError.NoDeckWithGivenId
        }
