public void update() {
        if(!this.changed) return;

        LinkedList<String> lines = new LinkedList<String>();

        for(String key: this.pushedIndexes.keySet()) {
            if(this.Indexes.containsKey(key)) {
                if(!this.Indexes.get(key).toString().equals(this.pushedIndexes.get(key).toString())) {
                    this.Database.remove(this.Indexes.get(key).toString());
                }
            }
        }

        this.read(false);

        for(String key: this.pushedIndexes.keySet()) {
            if(this.Indexes.containsKey(key)) {
                if(!this.Indexes.get(key).toString().equals(this.pushedIndexes.get(key).toString())) {
                    this.Indexes.put(key, this.pushedIndexes.get(key));
                    this.Database.append(this.Indexes.get(key).toString());
                }
            } else {
                this.Database.append(this.pushedIndexes.get(key).toString());
            }
        }

        this.pushedIndexes.clear();
        this.read();
    }