diff --git a/tdt4140-gr1800/app.core/src/main/java/tdt4140/gr1800/app/core/GeoLocations.java b/tdt4140-gr1800/app.core/src/main/java/tdt4140/gr1800/app/core/GeoLocations.java
index c0354a6ebd59fa1a3bda6bcb55d05e2daf94983f..3327a22c2cec46dd063dfb66670c362d526994ab 100644
--- a/tdt4140-gr1800/app.core/src/main/java/tdt4140/gr1800/app/core/GeoLocations.java
+++ b/tdt4140-gr1800/app.core/src/main/java/tdt4140/gr1800/app/core/GeoLocations.java
@@ -41,36 +41,34 @@ public class GeoLocations implements Iterable<LatLong> {
 		this.path = path;
 	}
 	
-	public Comparator<? super LatLong> latLongComparator(LatLong latLong) {
+	public Comparator<? super LatLong> closestComparator(LatLong latLong) {
 		return (latLong1, latLong2) -> (int) Math.signum(latLong.distance(latLong1) - latLong.distance(latLong2));
 	}
 
 	public Collection<LatLong> findLocationsNearby(LatLong latLong, double distance) {
 		return locations.stream()
-				.filter(latLong2 -> latLong.distance(latLong2) <= distance)
-				.sorted(latLongComparator(latLong))
+				.filter(latLong2 -> distance == 0.0 ? latLong2.equals(latLong) : latLong.distance(latLong2) <= distance)
+				.sorted(closestComparator(latLong))
 				.collect(Collectors.toList());
 	}
 
 	public LatLong findNearestLocation(LatLong latLong) {
 		Optional<LatLong> min = locations.stream()
-				.min(latLongComparator(latLong));
+				.min(closestComparator(latLong));
 		return min.isPresent() ? min.get() : null;
 	}
 
 	//
 	
 	public void addLocation(LatLong latLong) {
-		if (! locations.contains(latLong)) {
-			locations.add(latLong);
-		}
+		locations.add(latLong);
 	}
 
 	public void removeLocations(LatLong latLong, double distance) {
 		Iterator<LatLong> it = locations.iterator();
 		while (it.hasNext()) {
 			LatLong latLong2 = it.next();
-			if (latLong.distance(latLong2) <= distance) {
+			if (distance == 0.0 ? latLong2.equals(latLong) : latLong.distance(latLong2) <= distance) {
 				it.remove();
 			}
 		}
diff --git a/tdt4140-gr1800/app.core/src/main/java/tdt4140/gr1800/app/core/LatLong.java b/tdt4140-gr1800/app.core/src/main/java/tdt4140/gr1800/app/core/LatLong.java
index 7b99cdfc4e11edbc670219190dc3df65a591d8c3..5576e2526936153939127e79f614914ec0599538 100644
--- a/tdt4140-gr1800/app.core/src/main/java/tdt4140/gr1800/app/core/LatLong.java
+++ b/tdt4140-gr1800/app.core/src/main/java/tdt4140/gr1800/app/core/LatLong.java
@@ -10,10 +10,6 @@ public class LatLong {
 		this.longitude = longitude;
 	}
 
-	public double distance(LatLong loc) {
-		return distance(this.latitude, this.longitude, loc.latitude, loc.longitude);
-	}
-
 	public final static String SEPARATOR = ",";
 
 	@Override
@@ -84,6 +80,9 @@ public class LatLong {
 	/*::                                                                         :*/
 	/*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
 	public static double distance(double lat1, double lon1, double lat2, double lon2) {
+		if (lon1 == lon2 && lat1 == lat2) {
+			return 0.0;
+		}
 		double theta = lon1 - lon2;
 		double dist = Math.sin(deg2rad(lat1)) * Math.sin(deg2rad(lat2)) + Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) * Math.cos(deg2rad(theta));
 		dist = Math.acos(dist);
@@ -99,6 +98,10 @@ public class LatLong {
 		return distance(latLong1.latitude, latLong1.longitude, latLong2.latitude, latLong2.longitude);
 	}
 
+	public double distance(LatLong latLong2) {
+		return distance(latitude, longitude, latLong2.latitude, latLong2.longitude);
+	}
+
 	/*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
 	/*::	This function converts decimal degrees to radians						 :*/
 	/*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
diff --git a/tdt4140-gr1800/app.core/src/test/java/tdt4140/gr1800/app/core/GeoLocationsTest.java b/tdt4140-gr1800/app.core/src/test/java/tdt4140/gr1800/app/core/GeoLocationsTest.java
index aab486beb437ef7bcafc4a4ea80e43e232f84c43..271248bb5d264f096a47977f3c2361b25e3aaf4a 100644
--- a/tdt4140-gr1800/app.core/src/test/java/tdt4140/gr1800/app/core/GeoLocationsTest.java
+++ b/tdt4140-gr1800/app.core/src/test/java/tdt4140/gr1800/app/core/GeoLocationsTest.java
@@ -20,7 +20,7 @@ public class GeoLocationsTest {
 	public void testGeoLocations() {
 		Assert.assertEquals(0, geoLocations.size());
 		Assert.assertEquals(1, new GeoLocations(new LatLong(0, 0)).size());
-		Assert.assertEquals(1, new GeoLocations(new LatLong(0, 0), new LatLong(0, 0)).size());
+		Assert.assertEquals(2, new GeoLocations(new LatLong(0, 0), new LatLong(0, 0)).size());
 		Assert.assertEquals(2, new GeoLocations(new LatLong(0, 0), new LatLong(1, 1)).size());
 	}
 
@@ -46,11 +46,11 @@ public class GeoLocationsTest {
 		assertGeoLocations(latLong1);
 
 		geoLocations.addLocation(new LatLong(0, 0));
-		assertGeoLocations(latLong1);
+		assertGeoLocations(latLong1, latLong1);
 
 		LatLong latLong2 = new LatLong(1, 1);
 		geoLocations.addLocation(latLong2);
-		assertGeoLocations(latLong1, latLong2);
+		assertGeoLocations(latLong1, latLong1, latLong2);
 	}
 
 	@Test