diff --git a/Presiseringer.docx b/Presiseringer.docx
new file mode 100644
index 0000000000000000000000000000000000000000..aa0ed4237da4f672e592a60d623b0c05a3f9cff8
Binary files /dev/null and b/Presiseringer.docx differ
diff --git a/Stoppesteder.dta b/Stoppesteder.dta
index d9f7a0708973299095803ab5648df510a36894d4..3ad17dd43641befbabec2f8bcb95c26a272aba9c 100644
--- a/Stoppesteder.dta
+++ b/Stoppesteder.dta
@@ -1,24 +1,16 @@
 10
 Aa
-1
-2 3
+0
 Bb
-2
-1 3
-3 5
+0
 Cc
-1
-2 5
+0
 Dd
-1
-5 3
+0
 Ee
-2
-4 3
-6 5
+0
 Ff
-1
-5 5
+0
 Gg
 0
 Hh
diff --git a/bane.cpp b/bane.cpp
index 15dae3bbcb6d381d5a894f58f60c3b0dd40927e7..829b87f7cebffe9f9b8c980e4e8d52891456722d 100644
--- a/bane.cpp
+++ b/bane.cpp
@@ -1,6 +1,6 @@
 /**
  * Kode-fil for bane-klassen
- * 
+ *
  * @file bane.cpp
  * @author Sondre Sand & Frederik Simonsen
  */
@@ -14,7 +14,7 @@ using namespace std;
 /**
  * Oppretter en ny Bane. Nullstiller alle dens datamedlemmer.
  * Faktisk innlesning av reelle verdier skjer i lesData()
- * 
+ *
  * @see Rute::Rute()
  */
 Bane::Bane() {
@@ -23,7 +23,7 @@ Bane::Bane() {
 
 /**
  * Oppretter en ny Bane fra fil. Leser inn dens datamedlemmer
- * 
+ *
  * @param inn Filen det leses fra
  * @see Rute::Rute(...)
  */
@@ -32,9 +32,16 @@ Bane::Bane(ifstream & inn) : Rute (inn) {
     inn >> antVogner >> lengde; inn.ignore(); // Forkaster '\n'
 }
 
+/**
+ * Sletter minne allokert med en rute (virtuell)
+ */
+Bane::~Bane() {
+
+}
+
 /**
  * Leser inn alle datamedlemmer for en bane (virtuell)
- * 
+ *
  * @see Rute::lesData()
  */
 void Bane::lesData() {
@@ -45,7 +52,7 @@ void Bane::lesData() {
 
 /**
  * Skriver ut all informasjon om en bane til bruker i run-time (virtuell)
- * 
+ *
  * @see Rute::skrivBeskrivelse()
  */
 void Bane::skrivBeskrivelse() {
@@ -56,7 +63,7 @@ void Bane::skrivBeskrivelse() {
 
 /**
  * Skriver ut rutetype (bane) til bruker (virtuell)
- * 
+ *
  * @see Rute::skrivData()
  */
 void Bane::skrivData() const {
@@ -75,7 +82,7 @@ void Bane::skrivKort() const {
 
 /**
  * Skriver ut alle datamedlemmer for en bane til fil (virtuell)
- * 
+ *
  * @param ut - Filen det skrives til
  * @see Rute::skrivTilFil(...)
  */
@@ -83,4 +90,4 @@ void Bane::skrivTilFil(ofstream & ut) {
     ut << "A\n"; // Skriver ut A for rutetype Bane
     Rute::skrivTilFil(ut); // Rute skriver egne data
     ut << antVogner << ' ' << lengde << '\n'; // Skriver egne data
-}
\ No newline at end of file
+}
diff --git a/bane.h b/bane.h
index 03af3a5f0c1942df834ea1cf8405bef9b4844469..c9310cf55df401718de61744cdd145794e759cb5 100644
--- a/bane.h
+++ b/bane.h
@@ -20,6 +20,7 @@ class Bane : public Rute {
     public:
         Bane();
         Bane(std::ifstream & inn);
+        virtual ~Bane();
         virtual void lesData();
         virtual void skrivBeskrivelse();
         virtual void skrivData() const;
diff --git a/buss.cpp b/buss.cpp
index 6fac6403aeffaa555d1941836cec30df92052609..c6a4289b8f4f59d20adc9f6b43f6d96545e7268d 100644
--- a/buss.cpp
+++ b/buss.cpp
@@ -1,6 +1,6 @@
 /**
  * Kode-fil for buss-klassen
- * 
+ *
  * @file buss.cpp
  * @author Sondre Sand & Frederik Simonsen
  */
@@ -14,7 +14,7 @@ using namespace std;
 /**
  * Oppretter en ny Buss, nullstiller alle dens datamedlemmer.
  * Faktiske reelle verdier knyttet til bussen, leses inn i lesData
- * 
+ *
  * @see Rute::Rute()
  */
 Buss::Buss() {
@@ -24,7 +24,7 @@ Buss::Buss() {
 
 /**
  * Leser inn en buss sine datamedlemmer fra fil
- * 
+ *
  * @param inn Filen det leses fra
  * @see Rute::Rute(...)
  */
@@ -33,9 +33,16 @@ Buss::Buss(ifstream & inn) : Rute(inn) {
     inn >> antSitt >> antStaa >> leddbuss; inn.ignore();
 }
 
+/**
+ * Sletter minne allokert for en rute (virtuell)
+ */
+Buss::~Buss() {
+
+}
+
 /**
  * Leser inn alle datamedlemmer for en aktuell buss (virtuell)
- * 
+ *
  * @see Rute::lesData()
  */
 void Buss::lesData() {
@@ -44,12 +51,12 @@ void Buss::lesData() {
     antSitt = lesInt("Antall sitteplasser på bussen", MINSITT, MAXSITT);
     antStaa = lesInt("Antall ståplasser på bussen", MINSTAA, MAXSTAA);
     bussType = lesChar("Leddbuss? (J/N)");
-    
+
     while (bussType != 'J' && bussType != 'N') { // Looper ved ulovlig svar:
         cout << "\nUlovlig valg, prøv igjen.\n";
         bussType = lesChar("Leddbuss? J eller N");
     }
-    
+
     if (bussType == 'J') { // Oppdaterer om faktisk leddbuss eller ei:
         leddbuss = true;
     } else if (bussType == 'N')
@@ -59,7 +66,7 @@ void Buss::lesData() {
 
 /**
  * Skriver ut all informasjon om en buss til bruker (virtuell)
- * 
+ *
  * @see Rute::skrivBeskrivelse()
  */
 void Buss::skrivBeskrivelse() {
@@ -71,7 +78,7 @@ void Buss::skrivBeskrivelse() {
 
 /**
  * Skriver ut egen rutetype (buss) til bruker (virtuell)
- * 
+ *
  * @see Rute::skrivData()
  */
 void Buss::skrivData() const {
@@ -90,8 +97,8 @@ cout << "\nBussen har " << antSitt << " sitteplasser, " << antStaa
 
 /**
  * Skriver ut bussens datamedlemmer til fil (virtuell)
- * 
- * @param ut Filen det skrives til 
+ *
+ * @param ut Filen det skrives til
  * @see Rute::skrivTilFil(...)
  */
 void Buss::skrivTilFil(ofstream & ut) {
@@ -99,4 +106,4 @@ void Buss::skrivTilFil(ofstream & ut) {
     Rute::skrivTilFil(ut); // Rute skriver egne datamedlemmer
     ut << antSitt << ' ' << antStaa // Skriver egne datamedlemmer
        << ' ' << leddbuss << '\n'; // Leddbuss (1), ikke leddbuss (0)
-}
\ No newline at end of file
+}
diff --git a/buss.h b/buss.h
index 082dbe36a17e2a5e25a78bfde5cd5671ff80d2d7..cfeb8bdba26647638b88631888c6c6bbb6bfe9f6 100644
--- a/buss.h
+++ b/buss.h
@@ -22,6 +22,7 @@ class Buss : public Rute {
     public:
         Buss();
         Buss(std::ifstream & inn);
+        virtual ~Buss();
         virtual void lesData();
         virtual void skrivBeskrivelse();
         virtual void skrivData() const;
diff --git a/rute.cpp b/rute.cpp
index b8ac986ff170dd46ad70f9f3c19c3cddb51ff11e..b9607b6f3e56e9ad904334f13cb29b8802f6d2c7 100644
--- a/rute.cpp
+++ b/rute.cpp
@@ -298,7 +298,7 @@ string Rute::hentNavn(const Retning retning) {
         startSted = gStoppestederBase.hentNavnVhaIndeks(stoppene.back()->hentNr());
 
    return startSted; // Returnerer navnet på startstopp på ruten
-} //må endres til å ta imot peker! return peker.
+} 
 
 /**
  * Sjekker om en stopp er på en aktuell rute
diff --git a/rute.h b/rute.h
index b609e47732beff7bf65bc6ca0b6a9debc8ae59a6..77b589e38a7e92c9e98ac57e27a2ccb4d9ddc20a 100644
--- a/rute.h
+++ b/rute.h
@@ -35,7 +35,7 @@ class Rute {
     public:
         Rute();
         Rute(std::ifstream & inn);
-        ~Rute();
+        virtual ~Rute();
         bool erForst(Stopp* s1, Stopp* s2);
         bool erListeGyldig();
         bool erNabo(Stopp* s1, Stopp* s2);
diff --git a/ruter.cpp b/ruter.cpp
index fbdefdf2759dec7e43f151d4d08e1357e71ccd33..cf90a169b08a8748c37b2842bb2fe29a0bc16aa2 100644
--- a/ruter.cpp
+++ b/ruter.cpp
@@ -303,13 +303,17 @@ void Ruter::ruteTabell() {
  * @see Rute::skrivData()
  */
 void Ruter::skrivAlle() {
-    cout << "\nFølgende ruter finnes:\n";
-    for (const auto & [ruteNr, rute] : rutene) { // For hver rute:
-        cout << ruteNr << ' '; // Skriver rutenr
-        rute->skrivData(); // Ruten skriver egne data
+    if (!rutene.empty()) { // Så lenge det er ruter registrert:
+        cout << "\nFølgende ruter finnes:\n";
+        for (const auto & [ruteNr, rute] : rutene) { // For hver rute:
+            cout << ruteNr << ' '; // Skriver rutenr
+            rute->skrivData(); // Ruten skriver egne data
+            cout << '\n';
+    }
         cout << '\n';
+    } else {
+        cout << "\nIngen ruter registrert i datastrukturen.\n\n";
     }
-    cout << '\n';
 }
 
 /**
diff --git a/ruter.dta b/ruter.dta
index 21ea244e6eecbfc25cb6651b58741da5d93b9266..c227083464fb9af8955c90d2924774ee50abb547 100644
--- a/ruter.dta
+++ b/ruter.dta
@@ -1,13 +1 @@
-2
-1 U
-3
-1 0
-2 3
-3 5
-50 10 0
-2 A
-3
-4 0
-5 3
-6 5
-5 50
\ No newline at end of file
+0
\ No newline at end of file