diff --git a/rute.cpp b/rute.cpp
index 0b2538e102ba19865316c8f9cb279d08908b22ee..43c5bd19edd12cffe9506a47ba0a52d82fe332b6 100644
--- a/rute.cpp
+++ b/rute.cpp
@@ -4,11 +4,27 @@ using namespace std;
 
 extern Stoppesteder* gStoppesteder;
 
+/**
+ * Constructor for Rute objekt.
+ *
+ */
 Rute::Rute() {
 }
 
+/**
+ * Destructor for Rute objektet.
+ *
+ */
 Rute::~Rute() {
 }
+
+/**
+ * Lager ett nytt stopp i ruten.
+ *
+ * @param eksisterende - Indexen til ett eksisterende stoppested.
+ * @param pos - Posisjonen til iteratoren.
+ * @return Stopp* - Ett nytt stopp hvis alt stoppet er lovlig nullptr ellers.
+ */
 Stopp* Rute::ny(const int& eksisterende, int pos) {
     string stoppPlass = "";
     Stoppested *stoppested, *forrigeStoppested;
@@ -61,7 +77,7 @@ Stopp* Rute::ny(const int& eksisterende, int pos) {
             } else if (forsteStopp)
                 stopp->minutterFraForrigeStoppested = 0;
             else {
-                stopp->minutterFraForrigeStoppested = -1;  // stoppested->hentTidNaboStopp();
+                stopp->minutterFraForrigeStoppested = -1;
             }
             if (!sjekkOmStoppEksisterer(stopp)) {
                 oppdaterStoppestedVectorer(stoppested,
@@ -73,21 +89,15 @@ Stopp* Rute::ny(const int& eksisterende, int pos) {
                 } else if (eksisterende != -1) {
                     auto it = alleStoppestedenePaaRuten.begin();
                     advance(it, pos);
-
                     Stopp* tmpstopp = *it;
                     int tmpTid = tmpstopp->minutterFraForrigeStoppested;
                     tmpstopp->minutterFraForrigeStoppested = stopp->minutterFraForrigeStoppested;
                     stopp->minutterFraForrigeStoppested = tmpTid;
-                    // slettStoppested(pos, pos);
-
                     alleStoppestedenePaaRuten.insert(it, stopp);
-
                     pos++;
-
                 } else
                     alleStoppestedenePaaRuten.push_back(stopp);
                 cout << "\nStopp lagt til!" << '\n';
-                // return stopp;
             } else
                 cout << "\nError: Stopp er allerede lagt til!" << '\n';
         }
@@ -101,12 +111,25 @@ Stopp* Rute::ny(const int& eksisterende, int pos) {
     return stopp;
 }
 
+/**
+ * Sletter alle pekerne i listen over alle stoppestedene i ruten.
+ *
+ */
 void Rute::ryddOppMinne() {
     for (const auto& val : alleStoppestedenePaaRuten) {
         delete val;
     }
     alleStoppestedenePaaRuten.clear();
 }
+
+/**
+ * Sjekker om et stopp eksiterer fra før i  listen over alle
+ * stoppestedene i ruten.
+ *
+ * @param stopp - Peker til stoppet.
+ * @return true - Hvis stoppet eksisterer i ruten.
+ * @return false - Hvis stoppet ikke eksisterer i ruten.
+ */
 bool Rute::sjekkOmStoppEksisterer(Stopp* stopp) {
     for (const auto& val : alleStoppestedenePaaRuten) {
         if (val->indexStoppested == stopp->indexStoppested) return true;
@@ -114,11 +137,24 @@ bool Rute::sjekkOmStoppEksisterer(Stopp* stopp) {
     return false;
 }
 
+/**
+ * Skriver ut informasjon om ruten forlengs og baklengs.
+ *
+ * @see skrivDataForlengs().
+ * @see skrivDataBaklengs().
+ */
 void Rute::skrivData() {
     skrivDataForlengs();
     skrivDataBaklengs();
 }
 
+/**
+ * Skriver ut informasjon om ruten forlengs. Fra startstopp til
+ * endestopp til terminal.
+ *
+ * @see Stoppested::hentEksisterende().
+ * @see Stoppested::hentNavn().
+ */
 void Rute::skrivDataForlengs() {
     Stoppested* stopp;
     int totalTid, storrelseListe;
@@ -142,6 +178,13 @@ void Rute::skrivDataForlengs() {
     }
 }
 
+/**
+ * Skriver ut informasjon om ruten baklengs, dvs
+ * fra endestopp til startstopp til terminal.
+ *
+ * @see Stoppested::hentEksisterende().
+ * @see Stoppested::hentNavn().
+ */
 void Rute::skrivDataBaklengs() {
     Stoppested* stoppested;
     Stopp *stopp, *forrigeStopp;
@@ -179,6 +222,14 @@ void Rute::skrivDataBaklengs() {
     }
 }
 
+/**
+ * Funksjonen styrer om stopp skal slettes eller endres
+ * i en eksisterende rute.
+ *
+ * @see lesData3 lesInt().
+ * @see slettStoppested().
+ * @see smettInnStoppested().
+ */
 void Rute::endre() {
     int valg, antall;
     cout << "\n\n1 - Slett stoppested\n2 - Smett inn stoppested\n0 - Avbryt" << '\n';
@@ -189,7 +240,7 @@ void Rute::endre() {
         start = slutt = 0;
         start = lesInt("Hvilke stoppested utgjør start punktet?",
                        1, antall);
-        // if (start + 1 >= alleStoppestedenePaaRuten.size())
+
         if (valg == 1 && antall > 2 && start < antall) {
             slutt = lesInt("Hvilket stoppested utgjør slutt ytterpunkt?",
                            start + 2, antall);
@@ -203,17 +254,21 @@ void Rute::endre() {
         if (valg == 2 && slutt - 1 == start || valg == 2 && slutt == start)
             smettInnStoppested(start, slutt);
 
-        /*else if (valg == 1 && start == slutt - 1 || slutt == 0)
-            cout << "\nError i sletting: ugyldig input!" << '\n';*/
         else if (valg == 2)
             cout << "\nError: For smett inn så må slutt være rett etter start "
                  << "for at innsmettingen skal være entydig!\n";  //" << '\n'
     }
 }
 
+/**
+ * Sletter ett eller flere stopp fra ruten mellom
+ * de angitte parameterne.
+ *
+ * @param start - Slett fra.
+ * @param slutt - Slett til.
+ */
 void Rute::slettStoppested(const int& start, const int& slutt) {
     Stopp* stopp;
-    cout << "\nlist size: " << alleStoppestedenePaaRuten.size() << "\n\n";
     auto it = alleStoppestedenePaaRuten.begin();
     advance(it, start);
     for (int i = start; i < slutt - 1; i++) {
@@ -224,6 +279,15 @@ void Rute::slettStoppested(const int& start, const int& slutt) {
     skrivData();
 }
 
+/**
+ * Smetter inn et stoppested mellom angitte parameter
+ * verdier.
+ *
+ * @param start - Fra stopp.
+ * @param slutt - Til stopp.
+ *
+ * @see ny().
+ */
 void Rute::smettInnStoppested(const int& start, const int& slutt) {
     Stopp* stopp;
     list<Stopp*>::iterator it = alleStoppestedenePaaRuten.begin();
@@ -235,6 +299,11 @@ void Rute::smettInnStoppested(const int& start, const int& slutt) {
         ny(stopp->indexStoppested, start);
 }
 
+/**
+ * Legger til ett stopp i ruten hvis det ikke er nullptr.
+ *
+ * @param stopp - Peker til stopp.
+ */
 void Rute::leggTilStoppestedIRute(Stopp* stopp) {
     if (stopp != nullptr)
         alleStoppestedenePaaRuten.push_back(stopp);
@@ -243,6 +312,22 @@ void Rute::leggTilStoppestedIRute(Stopp* stopp) {
 void Rute::skrivType() {
 }
 
+/**
+ * Oppdaterer stoppestedet og stoppestedets naboer sine indexer til naboer
+ * og minutter mellom de relaterte nabo stoppene.
+ *
+ * @param stoppested - Peker til nåværende stoppested.
+ * @param forrigeStoppested - Peker til det forrige stoppestedet.
+ * @param stopp - Peker til det nåværende stoppet.
+ * @param forrigeStopp - Peker til det forrige stoppet.
+ *
+ * @see Stoppested::hentAntallStoppestedVector().
+ * @see Stoppested::hentTidNaboStopp().
+ * @see Stoppested::hentTidForsteNabo().
+ * @see Stoppested::leggTilNaboBakerst().
+ * @see Stoppested::leggTilNaboFremst().
+ * @see Stoppested::leggTilNaboStopp().
+ */
 void Rute::oppdaterStoppestedVectorer(Stoppested* stoppested,
                                       Stoppested* forrigeStoppested,
                                       Stopp* stopp,
@@ -251,30 +336,16 @@ void Rute::oppdaterStoppestedVectorer(Stoppested* stoppested,
     tmpTid2 = tmpTid = -1;
     int antIVec = stoppested->hentAntallStoppestedVector();
     Stoppested* tmpstd = stoppested;
-    // gStoppesteder->hentEksisterende(stoppested->hentNaboStoppIndex(true));
-    //  Stoppested* tmpstd2 = gStoppesteder->hentEksisterende(stoppested->hentNaboStoppIndex(true));
     if (stoppested != nullptr) {
         tmpTid = stoppested->hentTidNaboStopp();
-        // tmpTid2 = tmpstd2->hentTidNaboStopp();
     }
-
     if (forrigeStoppested != nullptr) {
         if (stopp->minutterFraForrigeStoppested == -1) {
-            /*     for (const auto& val : gStoppesteder->alleStoppesteder) {
-                     if (val->hentNaboStoppIndex(true) == stopp->indexStoppested) {
-                         forrigeStoppested->leggTilNaboBakerst(stopp->indexStoppested,
-                                                               val->hentTidNaboStopp());
-                         cout << val->hentTidNaboStopp() << "\n\n";
-                         //break;
-                     }
-                 }*/
             tmpTid2 = stoppested->hentTidForsteNabo();
             if (tmpTid2 == -1) tmpTid2 = stoppested->hentTidNaboStopp();
             // Legger nåværende stopp til i forrige stoppested
             forrigeStoppested->leggTilNaboBakerst(stopp->indexStoppested,
                                                   tmpTid2);
-            cout << "\n\n||" << tmpTid2 << " : "
-                 << stopp->indexStoppested << "\n\n";
 
         } else
             forrigeStoppested->leggTilNaboBakerst(stopp->indexStoppested,
@@ -285,18 +356,9 @@ void Rute::oppdaterStoppestedVectorer(Stoppested* stoppested,
                 // Legger til nåværende stopp til stoppested
                 stoppested->leggTilNaboFremst(forrigeStopp->indexStoppested,
                                               tmpTid2);
-                cout << "\n\n--" << tmpTid2
-                     << " : " << forrigeStopp->indexStoppested << "\n\n";
             } else
                 stoppested->leggTilNaboFremst(forrigeStopp->indexStoppested,
                                               stopp->minutterFraForrigeStoppested);
-
-            /*if (forrigeStopp->minutterFraForrigeStoppested > 0)
-                stoppested->leggTilNaboFremst(forrigeStopp->indexStoppested,
-                                              forrigeStopp->minutterFraForrigeStoppested);
-            else
-                stoppested->leggTilNaboFremst(forrigeStopp->indexStoppested,
-                                              stopp->minutterFraForrigeStoppested);*/
         }
     } else if (antIVec < 1) {
         stoppested->leggTilNaboStopp(-1, -1);
@@ -304,16 +366,37 @@ void Rute::oppdaterStoppestedVectorer(Stoppested* stoppested,
     // Gir stopp nabo-tid slik at rute beskrivelse fungerer korrekt
     if (stopp->minutterFraForrigeStoppested == -1)
         stopp->minutterFraForrigeStoppested = stoppested->hentTidNaboStopp();
-
-    // stopp->minutterFraForrigeStoppested = tmpTid;
 }
 
+/**
+ * Leser inn tid fra CLI.
+ *
+ * @return int - Brukervalgte tid.
+ * @see LesData3 lesInt().
+ */
 int Rute::lesTid() {
     return lesInt("Tid mellom forrige stopp i minutter",
                   MIN_MINUTTER,
                   MAX_MINUTTER);
 }
 
+/**
+ * Styrer alt som har med tabell logikk å gjøre dvs.
+ * Den skriver ut en tabell for et spesefikt stoppested
+ * i en spesefikk rute mellom bruker valgte tidspunkt
+ * enten framlengs eller baklengs.
+ *
+ * @see Stoppesteder::hentEksisterende().
+ * @see Stoppested::hentNavn().
+ * @see skrivDataForlengs().
+ * @see skrivDataBaklengs().
+ * @see HjelpeFunksjoner::rensStreng().
+ * @see HjelpeFunksjoner::skrivKlokkeslett().
+ * @see LesData3 lesInt().
+ * @see HjelpeFunksjoner::lesTall().
+ * @see hentTotalTidForan().
+ * @see hentTotalTidTilbake().
+ */
 void Rute::tabell() {
     Retning retning = Annen;
     Stoppested* stoppested;
@@ -454,7 +537,6 @@ void Rute::tabell() {
 
                 // Tabell for stopp på 'i' klokkeslett
                 int tall = 0;
-                int pos = 0;
                 int timeAvgang = 0;
                 int minutterAvgang = 0;
                 for (auto& val : valgtTid) {
@@ -465,26 +547,14 @@ void Rute::tabell() {
                         if ((val[4] + totTid) % 60 != 0)
                             timeAvgang++;
 
-                        // val[7] += totTid + val[4];
-                        /*if (val[7] > 0)
-                            tall = val[7];
-                        else {
-                            tall = minutterAvgang + totTid;
-                            val[7] = val[4] + totTid;*/
-                        //}
-                        // Hvis i er
-                        /*if (i + timeAvgang != + val[0]+timeAvgang )
-                            tall = 60;*/
-                        // timeAvgang += i;
-                        if (val[7] == i )//&& totTid + val[4] > MAX_MINUTTER)
+                        if (val[7] == i)
                             tall = minutterAvgang;
                         else
                             tall = totTid + val[4];
 
-                        
                         while (igjen) {
+                            // På samme time
                             if (i >= val[2]) {
-                                // cout << timeAvgang << "\n\n";
                                 if (tall < MAX_MINUTTER && val[7] == i) {
                                     cout << "\t";
                                     if (tall <= 9)
@@ -494,52 +564,15 @@ void Rute::tabell() {
                                     if (val[4] > MAX_MINUTTER)
                                         igjen = false;
                                     tall += totTid + val[4];
-                                    
+
                                 } else {
-                                    
                                     igjen = false;
-                                    }
-
+                                }
                             } else
-
                                 igjen = false;
                         }
                         if (val[7] == i)
                             val[7] += timeAvgang;
-                       // val[7] -= 60;
-                       // if (val[7] < 0)
-                        //    val[7] = 0;
-
-                        // cout << "inne i if!\n\n";
-                        // int iEnTime = (60 / (totTid + val[2]));
-
-                        /*int antTimer;
-                        if (tall > MAX_MINUTTER) {
-                            antTimer = tall / 60;
-                        }else antTimer = 0;
-
-                        igjen = true;
-                        while (igjen) {
-                            if (tall >= val[1] &&
-                                i == val[2] &&
-                                tall < MAX_MINUTTER) {
-                                // tall -= val[3];
-                                cout << "\t" << tall;
-                                tall += tall;
-                            } else if (tall < MAX_MINUTTER && i > val[2]) {
-                                cout << "\t" << tall;
-                                tall += tall;
-                            } else
-                                igjen = false;
-                        }*/
-                        // else cout << "\t" << totTid + val[2];
-
-                        /* utregning = (totTid + val[2]) / 60;
-                         if (utregning < MAX_MINUTTER)
-
-                             else if (i == val[4] - 1) {
-                                 cout << "\t" << totTid + val[1];
-                             }*/
                     }
                 }
                 cout << '\n';
@@ -549,6 +582,12 @@ void Rute::tabell() {
         cout << "\nError: Fant ikke noe stoppested med det navnet!" << '\n';
 }
 
+/**
+ * Henter total tid fra stoppested start til angitt parameter.
+ *
+ * @param pos - Indexen til stoppestedet.
+ * @return int - Den totale tiden fra start stopp til pos.
+ */
 int Rute::hentTotalTidForan(const int& pos) {
     int totalTid;
     totalTid = 0;
@@ -561,6 +600,13 @@ int Rute::hentTotalTidForan(const int& pos) {
     return -1;
 }
 
+/**
+ * Henter total tid fra stoppested slutt til angitt parameter.
+ * Brukes når man trenger total tid "reversert" som i skrivDataBaklengs().
+ *
+ * @param pos - Indexen til stoppestedet.
+ * @return int - Den totale tiden fra slutt stopp til pos.
+ */
 int Rute::hentTotalTidTilbake(const int& pos) {
     Stopp *stopp, *forrigeStopp;
     int totalTid;
@@ -581,20 +627,25 @@ int Rute::hentTotalTidTilbake(const int& pos) {
     return -1;
 }
 
+/**
+ * Leser inn stopp fra fil og lager en nye pekere til
+ * Stopp structs som legges til listen over alle stoppesteder
+ * på ruten.
+ *
+ * @param inn - Inn data fil-strøm.
+ * @see HjelpeFunksjoner::splittStreng().
+ */
 void Rute::lesFraFil(ifstream& inn) {
     Stopp* stopp = nullptr;
     vector<string> linjenSplittet;
     int pos = 0;
     string heleLinjen = "";
-    // getline(inn, heleLinjen);
-    //  cout << heleLinjen << "\n\n";
     do {
         getline(inn, heleLinjen);
         linjenSplittet = hjelp.splittStreng('*', heleLinjen);
         pos = 0;
         if (heleLinjen != "Buss" && heleLinjen != "Bane" && heleLinjen != "X") {
             for (int i = 0; i < linjenSplittet.size() - 1; i++) {
-                // if (!hjelp.erBokstav(val)) {
                 switch (i) {
                     case 0: {
                         stopp = new Stopp;
@@ -607,18 +658,17 @@ void Rute::lesFraFil(ifstream& inn) {
                         break;
                     }
                 }
-                // }
-                cout << stopp->indexStoppested << '\n'
-                     << stopp->minutterFraForrigeStoppested << '\n';
-
-                cout << alleStoppestedenePaaRuten.size() << " size \n\n";
                 pos++;
             }
-            // alleStoppestedenePaaRuten.push_back(stopp);
         }
     } while (heleLinjen != "Buss" && heleLinjen != "Bane" && heleLinjen != "X");
 }
 
+/**
+ * Skriver alle stopp på en rute til fil.
+ *
+ * @param ut - Ut data fil-strøm.
+ */
 void Rute::skrivTilFil(ofstream& ut) {
     for (const auto& val : alleStoppestedenePaaRuten) {
         ut << val->indexStoppested << '*'