private void receiveRegularMessage(Message m) {
        if(this.children.contains(m.broadcaster())) {
            if (this.parent == -1) {
                this.returnACK(m);
            }
            else {
                this.rebroadcast(m);
            }
        }
        else if (this.parent == m.broadcaster()) {
            if (m.Up()) {
                for (Message oldM: this.sentMessageDuration.keySet()) {
                    if (oldM.id() == m.id()) {
                        sentMessageDuration.remove(oldM);
                    }
                }
            }
            else if (this.children.contains(m.destination())){
                this.rebroadcast(m);
            }
        }
        else if (this.id == m.destination()) {
            //it has reached the destination!
        }
        else {
            System.out.println("SOMETHING WENT TERRIBLY WRONG");
        }
	}