diff --git a/.gradle/5.1.1/executionHistory/executionHistory.bin b/.gradle/5.1.1/executionHistory/executionHistory.bin
index 8c4f16289f3d049418f8e2843791e4f8323b2bf4..27ae04349da8e2f5cb90e5344eb1bcc19544c303 100644
Binary files a/.gradle/5.1.1/executionHistory/executionHistory.bin and b/.gradle/5.1.1/executionHistory/executionHistory.bin differ
diff --git a/.gradle/5.1.1/executionHistory/executionHistory.lock b/.gradle/5.1.1/executionHistory/executionHistory.lock
index fd2e0540fc09cb86901bd9f919b545786b52ca80..23e2ead6bb4fc68fcdbe0b52744eef5cc4590e31 100644
Binary files a/.gradle/5.1.1/executionHistory/executionHistory.lock and b/.gradle/5.1.1/executionHistory/executionHistory.lock differ
diff --git a/.gradle/5.1.1/fileHashes/fileHashes.bin b/.gradle/5.1.1/fileHashes/fileHashes.bin
index 46dfd9c78e24345e9663c12bd639eba1d8688289..fe64d7620e564147ba7be84920011a1313e1c726 100644
Binary files a/.gradle/5.1.1/fileHashes/fileHashes.bin and b/.gradle/5.1.1/fileHashes/fileHashes.bin differ
diff --git a/.gradle/5.1.1/fileHashes/fileHashes.lock b/.gradle/5.1.1/fileHashes/fileHashes.lock
index 9403a7ff5dd4cd0242533caf9488a689cd92e9f3..0b7d9135eaa722539a9d36bcdf0f5bb564e633ba 100644
Binary files a/.gradle/5.1.1/fileHashes/fileHashes.lock and b/.gradle/5.1.1/fileHashes/fileHashes.lock differ
diff --git a/.gradle/5.1.1/javaCompile/classAnalysis.bin b/.gradle/5.1.1/javaCompile/classAnalysis.bin
index 5746e0516e63cf47a31dfec47d76d5f62c6aed26..fac95c1a7d9d50aa5f4162d5464502f75523634c 100644
Binary files a/.gradle/5.1.1/javaCompile/classAnalysis.bin and b/.gradle/5.1.1/javaCompile/classAnalysis.bin differ
diff --git a/.gradle/5.1.1/javaCompile/javaCompile.lock b/.gradle/5.1.1/javaCompile/javaCompile.lock
index 5447a33f520db6f9306718a2bf058721451ed6f7..1d6ffa56e36b6c70f41e56f9ca310b855f1bdf5e 100644
Binary files a/.gradle/5.1.1/javaCompile/javaCompile.lock and b/.gradle/5.1.1/javaCompile/javaCompile.lock differ
diff --git a/.gradle/5.1.1/javaCompile/taskHistory.bin b/.gradle/5.1.1/javaCompile/taskHistory.bin
index 45712337ee59ce5564572b88387cbedf1fe841f7..776a80b55eb6364b92e93367fa9ac6c4fb80d11a 100644
Binary files a/.gradle/5.1.1/javaCompile/taskHistory.bin and b/.gradle/5.1.1/javaCompile/taskHistory.bin differ
diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock
index 8fc0811b3dfea0bc588ce75ed5efec71d2a4ce8d..0599fb613ad4a0cfb559682d38ca0df391cbaa5b 100644
Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ
diff --git a/.gradle/buildOutputCleanup/outputFiles.bin b/.gradle/buildOutputCleanup/outputFiles.bin
index 1b7ed1f6fa414c98f4309fd531aaf08de3f08a32..366dbcf68cbbad6475e87debd0a86218f5b9fa41 100644
Binary files a/.gradle/buildOutputCleanup/outputFiles.bin and b/.gradle/buildOutputCleanup/outputFiles.bin differ
diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser
index 9b894a7074140515f18d88d05280b13c6e1ee6df..ece26b762a9474b65ef845756c339e216c9c55ec 100644
Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ
diff --git a/.idea/caches/gradle_models.ser b/.idea/caches/gradle_models.ser
index c6af050db1376efb91b41753c111518d52fdbd8f..8fe8459c469f1ee2aff6c89382269945cf26dc94 100644
Binary files a/.idea/caches/gradle_models.ser and b/.idea/caches/gradle_models.ser differ
diff --git a/.idea/libraries/Gradle__com_google_maps_android_android_maps_utils_0_5_aar.xml b/.idea/libraries/Gradle__com_google_maps_android_android_maps_utils_0_5_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ccda513e33ed95cb76af84eda747d48d006563e3
--- /dev/null
+++ b/.idea/libraries/Gradle__com_google_maps_android_android_maps_utils_0_5_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.google.maps.android:android-maps-utils:0.5@aar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/ebd4022f0313969aae1e001d9dcdd76c/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/ebd4022f0313969aae1e001d9dcdd76c/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 598fa0fa3c3d2c6b3f722b7d7d8c0ff97c101d85..942456533f5dacb7deef8108d2b0d6a084c907ce 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -9,8 +9,23 @@
     <option name="TOOL_WINDOW_CONFIGURED_FILTER" value="Show only selected application" />
   </component>
   <component name="ChangeListManager">
-    <list default="true" id="92eeab65-885e-4873-8c3f-1e2cdc70020e" name="Default Changelist" comment="">
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/example/liliyayankova/unirides/ReportProblem.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/example/liliyayankova/unirides/ReportProblem.java" afterDir="false" />
+    <list default="true" id="92eeab65-885e-4873-8c3f-1e2cdc70020e" name="Default Changelist" comment="map activity code updated - Mark Wu">
+      <change afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_maps_android_android_maps_utils_0_5_aar.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.gradle/5.1.1/executionHistory/executionHistory.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/5.1.1/executionHistory/executionHistory.bin" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.gradle/5.1.1/executionHistory/executionHistory.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/5.1.1/executionHistory/executionHistory.lock" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.gradle/5.1.1/fileHashes/fileHashes.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/5.1.1/fileHashes/fileHashes.bin" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.gradle/5.1.1/fileHashes/fileHashes.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/5.1.1/fileHashes/fileHashes.lock" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.gradle/5.1.1/javaCompile/classAnalysis.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/5.1.1/javaCompile/classAnalysis.bin" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.gradle/5.1.1/javaCompile/javaCompile.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/5.1.1/javaCompile/javaCompile.lock" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.gradle/5.1.1/javaCompile/taskHistory.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/5.1.1/javaCompile/taskHistory.bin" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.gradle/buildOutputCleanup/buildOutputCleanup.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/buildOutputCleanup/buildOutputCleanup.lock" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.gradle/buildOutputCleanup/outputFiles.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/buildOutputCleanup/outputFiles.bin" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/caches/build_file_checksums.ser" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/caches/build_file_checksums.ser" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/caches/gradle_models.ser" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/caches/gradle_models.ser" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/build.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/build.gradle" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/example/liliyayankova/unirides/Map.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/example/liliyayankova/unirides/Map.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/unirides.iml" beforeDir="false" afterPath="$PROJECT_DIR$/unirides.iml" afterDir="false" />
     </list>
     <ignored path="$PROJECT_DIR$/build/generated/not_namespaced_r_class_sources/" />
     <ignored path="$PROJECT_DIR$/build/generated/source/r/" />
@@ -71,19 +86,6 @@
   </component>
   <component name="FileEditorManager">
     <leaf>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/example/liliyayankova/unirides/Driver_Main.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="210">
-              <caret line="30" column="39" selection-start-line="30" selection-start-column="39" selection-end-line="30" selection-end-column="39" />
-              <folding>
-                <element signature="e#1361#1374#0" expanded="true" />
-                <element signature="e#1375#1389#0" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/src/main/res/layout/activity_report_problem.xml">
           <provider selected="true" editor-type-id="text-editor">
@@ -158,11 +160,36 @@
           </provider>
         </entry>
       </file>
-      <file pinned="false" current-in-tab="true">
+      <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/src/main/java/com/example/liliyayankova/unirides/ReportProblem.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="708">
-              <caret line="141" column="3" selection-start-line="141" selection-start-column="3" selection-end-line="141" selection-end-column="3" />
+            <state relative-caret-position="303">
+              <caret line="141" column="2" selection-start-line="141" selection-start-column="2" selection-end-line="141" selection-end-column="2" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/src/main/java/com/example/liliyayankova/unirides/Map.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="266">
+              <caret line="348" column="5" lean-forward="true" selection-start-line="348" selection-start-column="5" selection-end-line="348" selection-end-column="5" />
+              <folding>
+                <element signature="imports" expanded="true" />
+                <element signature="e#4417#4430#0" expanded="true" />
+                <element signature="e#4431#4445#0" expanded="true" />
+                <element signature="e#4906#7051#0" expanded="true" />
+                <element signature="e#7050#7051#0" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/build.gradle">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="608">
+              <caret line="45" column="69" selection-start-line="45" selection-start-column="69" selection-end-line="45" selection-end-column="69" />
             </state>
           </provider>
         </entry>
@@ -193,16 +220,6 @@
           </provider>
         </entry>
       </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/res/layout/activity_register.xml">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="241">
-              <caret line="22" column="34" selection-start-line="13" selection-start-column="4" selection-end-line="22" selection-end-column="34" />
-            </state>
-          </provider>
-          <provider editor-type-id="android-designer2" />
-        </entry>
-      </file>
     </leaf>
   </component>
   <component name="FileTemplateManagerImpl">
@@ -244,7 +261,6 @@
         <option value="$PROJECT_DIR$/local.properties" />
         <option value="$PROJECT_DIR$/src/main/java/com/example/liliyayankova/unirides/NavBar.java" />
         <option value="$PROJECT_DIR$/src/main/res/layout/activity_navbar.xml" />
-        <option value="$PROJECT_DIR$/build.gradle" />
         <option value="$PROJECT_DIR$/src/main/res/layout/activity_driver_main.xml" />
         <option value="$PROJECT_DIR$/src/main/res/layout/activity_driver_profile.xml" />
         <option value="$PROJECT_DIR$/src/main/res/layout/activity_map.xml" />
@@ -255,7 +271,6 @@
         <option value="$PROJECT_DIR$/src/main/res/menu/toolbar_menu.xml" />
         <option value="$PROJECT_DIR$/src/main/java/com/example/liliyayankova/unirides/Driver_Profile.java" />
         <option value="$PROJECT_DIR$/src/main/res/menu/navbar_menu.xml" />
-        <option value="$PROJECT_DIR$/src/main/java/com/example/liliyayankova/unirides/Map.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/example/liliyayankova/unirides/User_Main.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/example/liliyayankova/unirides/User_Profile.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/example/liliyayankova/unirides/Route.java" />
@@ -272,12 +287,14 @@
         <option value="$PROJECT_DIR$/src/main/res/values/strings.xml" />
         <option value="$PROJECT_DIR$/src/main/res/layout/activity_terms.xml" />
         <option value="$PROJECT_DIR$/src/main/java/com/example/liliyayankova/unirides/ReportProblem.java" />
+        <option value="$PROJECT_DIR$/src/main/java/com/example/liliyayankova/unirides/Map.java" />
+        <option value="$PROJECT_DIR$/build.gradle" />
       </list>
     </option>
   </component>
   <component name="ProjectFrameBounds">
-    <option name="x" value="778" />
-    <option name="y" value="23" />
+    <option name="x" value="1202" />
+    <option name="y" value="27" />
     <option name="width" value="1358" />
     <option name="height" value="1336" />
   </component>
@@ -307,23 +324,6 @@
               <item name="java" type="edd41e36:AndroidSourceTypeNode" />
               <item name="unirides" type="cbb59c9e:AndroidPsiDirectoryNode" />
             </path>
-            <path>
-              <item name="unirides" type="1abcf292:AndroidViewProjectNode" />
-              <item name="unirides" type="feadf853:AndroidModuleNode" />
-              <item name="res" type="d4f16f75:AndroidResFolderNode" />
-            </path>
-            <path>
-              <item name="unirides" type="1abcf292:AndroidViewProjectNode" />
-              <item name="unirides" type="feadf853:AndroidModuleNode" />
-              <item name="res" type="d4f16f75:AndroidResFolderNode" />
-              <item name="layout" type="ddeffd01:AndroidResFolderTypeNode" />
-            </path>
-            <path>
-              <item name="unirides" type="1abcf292:AndroidViewProjectNode" />
-              <item name="unirides" type="feadf853:AndroidModuleNode" />
-              <item name="res" type="d4f16f75:AndroidResFolderNode" />
-              <item name="values" type="ddeffd01:AndroidResFolderTypeNode" />
-            </path>
             <path>
               <item name="unirides" type="1abcf292:AndroidViewProjectNode" />
               <item name="Gradle Scripts" type="ae0cef3a:AndroidBuildScriptsGroupNode" />
@@ -503,12 +503,11 @@
     </todo-panel>
   </component>
   <component name="ToolWindowManager">
-    <frame x="778" y="23" width="1358" height="1336" extended-state="0" />
-    <editor active="true" />
+    <frame x="1202" y="27" width="1358" height="1336" extended-state="0" />
     <layout>
       <window_info id="Captures" order="0" side_tool="true" weight="0.25" />
       <window_info id="Designer" order="1" />
-      <window_info active="true" content_ui="combo" id="Project" order="2" visible="true" weight="0.32978722" />
+      <window_info content_ui="combo" id="Project" order="2" visible="true" weight="0.32978722" />
       <window_info id="Structure" order="3" side_tool="true" />
       <window_info id="Build Variants" order="4" side_tool="true" />
       <window_info id="Image Layers" order="5" />
@@ -519,7 +518,7 @@
       <window_info anchor="bottom" id="TODO" order="1" sideWeight="0.49924013" weight="0.329582" />
       <window_info anchor="bottom" id="Android Profiler" order="2" weight="0.329582" />
       <window_info anchor="bottom" id="Debug" order="3" />
-      <window_info anchor="bottom" id="Terminal" order="4" visible="true" weight="0.32717043" />
+      <window_info active="true" anchor="bottom" id="Terminal" order="4" visible="true" weight="0.32717043" />
       <window_info anchor="bottom" id="Event Log" order="5" sideWeight="0.10030395" side_tool="true" weight="0.329582" />
       <window_info anchor="bottom" id="Find" order="6" weight="0.329582" />
       <window_info anchor="bottom" id="Version Control" order="7" />
@@ -533,6 +532,10 @@
       <window_info anchor="right" id="Palette&#9;" order="5" />
     </layout>
   </component>
+  <component name="VcsManagerConfiguration">
+    <MESSAGE value="map activity code updated - Mark Wu" />
+    <option name="LAST_COMMIT_MESSAGE" value="map activity code updated - Mark Wu" />
+  </component>
   <component name="editorHistoryManager">
     <entry file="file://$PROJECT_DIR$/src/main/res/drawable/logo_hd.png">
       <provider selected="true" editor-type-id="images" />
@@ -617,13 +620,6 @@
       </provider>
       <provider editor-type-id="android-designer2" />
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/example/liliyayankova/unirides/Map.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="330">
-          <caret line="117" column="45" selection-start-line="117" selection-start-column="45" selection-end-line="117" selection-end-column="45" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/src/main/java/com/example/liliyayankova/unirides/User_Main.java">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="303">
@@ -774,13 +770,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/build.gradle">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="675">
-          <caret line="45" column="57" selection-start-line="45" selection-start-column="57" selection-end-line="45" selection-end-column="57" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/src/main/java/com/example/liliyayankova/unirides/DateFragment.java">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="75">
@@ -916,8 +905,29 @@
     </entry>
     <entry file="file://$PROJECT_DIR$/src/main/java/com/example/liliyayankova/unirides/ReportProblem.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="708">
-          <caret line="141" column="3" selection-start-line="141" selection-start-column="3" selection-end-line="141" selection-end-column="3" />
+        <state relative-caret-position="303">
+          <caret line="141" column="2" selection-start-line="141" selection-start-column="2" selection-end-line="141" selection-end-column="2" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/build.gradle">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="608">
+          <caret line="45" column="69" selection-start-line="45" selection-start-column="69" selection-end-line="45" selection-end-column="69" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/example/liliyayankova/unirides/Map.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="266">
+          <caret line="348" column="5" lean-forward="true" selection-start-line="348" selection-start-column="5" selection-end-line="348" selection-end-column="5" />
+          <folding>
+            <element signature="imports" expanded="true" />
+            <element signature="e#4417#4430#0" expanded="true" />
+            <element signature="e#4431#4445#0" expanded="true" />
+            <element signature="e#4906#7051#0" expanded="true" />
+            <element signature="e#7050#7051#0" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
diff --git a/build.gradle b/build.gradle
index 05549b742851a96569b62205ce2cff4bd127021b..6cb866a618f575de7eedb0c1211a9d555c2a24c8 100644
--- a/build.gradle
+++ b/build.gradle
@@ -42,12 +42,16 @@ dependencies {
     implementation 'com.android.support.constraint:constraint-layout:1.1.3'
     implementation 'com.android.support:design:28.0.0'
     implementation 'com.mikepenz:materialdrawer:6.0.9'
+    implementation 'com.google.maps.android:android-maps-utils:0.5'
+    implementation 'com.google.android.gms:play-services-maps:15.0.1'
     implementation 'com.google.android.gms:play-services-maps:16.1.0'
     implementation 'com.google.android.gms:play-services-location:16.0.0'
     implementation 'com.google.firebase:firebase-core:16.0.8'
     implementation 'com.google.firebase:firebase-auth:16.2.1'
     implementation 'com.google.firebase:firebase-database:16.1.0'
     implementation 'com.google.firebase:firebase-storage:16.0.2'
+    implementation 'com.google.maps.android:android-maps-utils:0.5'
+    implementation 'com.google.android.gms:play-services-maps:15.0.1'
     testImplementation 'junit:junit:4.12'
     androidTestImplementation 'com.android.support.test:runner:1.0.2'
     androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
diff --git a/src/main/java/com/example/liliyayankova/unirides/Map.java b/src/main/java/com/example/liliyayankova/unirides/Map.java
index ea9ed32a29ba62380624ea78cf50cecbd3d7173d..7763af4faeb4542cca5082e79dcc1a9bfcb7e1ce 100644
--- a/src/main/java/com/example/liliyayankova/unirides/Map.java
+++ b/src/main/java/com/example/liliyayankova/unirides/Map.java
@@ -8,12 +8,9 @@ import android.location.LocationManager;
 import android.os.Build;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
-import android.support.design.widget.NavigationView;
 import android.support.v4.app.ActivityCompat;
 import android.os.Bundle;
 import android.support.v4.content.ContextCompat;
-import android.support.v4.widget.DrawerLayout;
-import android.support.v7.app.ActionBarDrawerToggle;
 import android.support.v7.app.AppCompatActivity;
 import android.support.v7.widget.Toolbar;
 import android.util.Log;
@@ -35,6 +32,18 @@ import com.google.android.gms.maps.model.BitmapDescriptorFactory;
 import com.google.android.gms.maps.model.LatLng;
 import com.google.android.gms.maps.model.Marker;
 import com.google.android.gms.maps.model.MarkerOptions;
+import com.google.firebase.FirebaseApp;
+import com.google.firebase.auth.FirebaseAuth;
+import com.google.firebase.auth.FirebaseUser;
+import com.google.firebase.database.DataSnapshot;
+import com.google.firebase.database.DatabaseError;
+import com.google.firebase.database.DatabaseReference;
+import com.google.firebase.database.FirebaseDatabase;
+import com.google.firebase.database.ValueEventListener;
+import android.support.design.widget.NavigationView;
+import android.support.v4.widget.DrawerLayout;
+import android.support.v7.app.ActionBarDrawerToggle;
+import com.google.maps.android.SphericalUtil;
 
 public class Map extends AppCompatActivity implements
         OnMapReadyCallback,
@@ -50,7 +59,12 @@ public class Map extends AppCompatActivity implements
     private Marker myLocation;
     private static final int REQUEST_USER_LOCATION_CODE = 99;
     private boolean isDriver;
-
+    private FirebaseAuth mFirebaseAuth;
+    private FirebaseDatabase mFirebaseDatabase;
+    private DatabaseReference mLocationDatabaseReference;
+    private String firstName;
+    private String lastName;
+    private LatLng latLng;
     private DrawerLayout dl;
     private ActionBarDrawerToggle dt;
 
@@ -66,6 +80,11 @@ public class Map extends AppCompatActivity implements
                 .findFragmentById(R.id.map);
         mapFragment.getMapAsync(this);
 
+        latLng = new LatLng(0.0,0.0);
+        currentLocation = new Location ("dummyprovider");
+        currentLocation.setLatitude(0.0);
+        currentLocation.setLongitude(0.0);
+
         locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
 
         //setting the user_toolbar layout as the action bar
@@ -86,6 +105,9 @@ public class Map extends AppCompatActivity implements
                 isDriver = true;
             }
         }
+        FirebaseApp.initializeApp(this);
+        mFirebaseDatabase = FirebaseDatabase.getInstance();
+        mLocationDatabaseReference= mFirebaseDatabase.getReference().child("drivers");
 
         dl = (DrawerLayout)findViewById(R.id.dl);
         dt = new ActionBarDrawerToggle(this,dl,R.string.Open,R.string.Close);
@@ -123,14 +145,14 @@ public class Map extends AppCompatActivity implements
                     startActivity(report_i);
 
                 }else if (id == R.id.nav_logout){
-                      /*
-                TODO:
-                    Possibly add a way to log out here? (not sure if we are even tracking the login instance
-                    within each activity? as far as I understand the login just gets you to the next activity
-                    however if you "logout" and just press the back button after it takes you back to the homepage
-                    it will act as if you are still logged in when you reenter).
-                    for now i have just set it so it goes back to the homepage (where you can register or login).
-                 */
+                  /*
+            TODO:
+                Possibly add a way to log out here? (not sure if we are even tracking the login instance
+                within each activity? as far as I understand the login just gets you to the next activity
+                however if you "logout" and just press the back button after it takes you back to the homepage
+                it will act as if you are still logged in when you reenter).
+                for now i have just set it so it goes back to the homepage (where you can register or login).
+             */
 
                     Toast.makeText(Map.this, "successfully logged out", Toast.LENGTH_SHORT).show();
                     Intent logout_i = new Intent(Map.this, Homepage.class);
@@ -142,17 +164,50 @@ public class Map extends AppCompatActivity implements
             }
         });
 
+
+
+
     }
 
+
     @Override
     public void onMapReady(GoogleMap googleMap) {
         mMap = googleMap;
+        DatabaseReference dbRef = FirebaseDatabase.getInstance().getReference();
         if(ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
                 == PackageManager.PERMISSION_GRANTED) {
 
             buildGoogleApiClient();
 
             mMap.setMyLocationEnabled(true);
+            if(!isDriver) {
+                dbRef.addListenerForSingleValueEvent(new ValueEventListener() {
+                    @Override
+                    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
+                        for (DataSnapshot child : dataSnapshot.child("drivers").getChildren()) {
+                            Double latitude = child.child("latitude").getValue(Double.class);
+                            Double longitude = child.child("longitude").getValue(Double.class);
+                            latLng = new LatLng(currentLocation.getLatitude(), currentLocation.getLongitude());
+                            LatLng latLng2 = new LatLng(latitude, longitude);
+                            firstName = child.child("first_name").getValue(String.class);
+                            lastName = child.child("last_name").getValue(String.class);
+                            Log.e("In radius","ronan white");
+
+                            if (SphericalUtil.computeDistanceBetween(latLng, latLng2) < 300)
+                                Log.e("radius", latLng.toString() + " is 300 radius to " + latitude.toString() + ", " + longitude.toString());
+                            mMap.addMarker(new MarkerOptions()
+                                    .position(latLng2)
+                                    .title(firstName + " " + lastName));
+
+                        }
+                    }
+
+                    @Override
+                    public void onCancelled(@NonNull DatabaseError databaseError) {
+
+                    }
+                });
+            }
         }
     }
 
@@ -207,9 +262,45 @@ public class Map extends AppCompatActivity implements
     @Override
     public void onLocationChanged(Location location) {
         currentLocation = location;
+        FirebaseUser user = mFirebaseAuth.getInstance().getCurrentUser();
+        String userId = user.getUid();
+        DatabaseReference dbRef = FirebaseDatabase.getInstance().getReference();
+        Log.d("hello", "HELP");
+        Log.d("hello", "HELP");
+        Log.d("hello", "HELP");
+        Log.d("hello", "HELP");
+        Log.d("hello", "HELP");
+        Log.d("hello", "HELP");
+        Log.d("hello", "HELP");
+        Log.d("hello", "HELP");
+        Log.d("hello", "HELP");
+        Log.d("hello", "HELP");
+        Log.d("hello", "HELP");
+        Log.d("hello", "HELP");
+        Log.d("hello", "HELP");
+        Log.d("hello", "HELP");
+        Log.d("hello", "HELP");
+        Log.d("hello", "HELP");
+        Log.d("hello", "HELP");
+        Log.d("hello", "HELP");
+        Log.d("hello", "HELP");
+        Log.d("hello", "HELP");
+        Log.d("hello", "HELP");
+        Log.d("hello", "HELP");
+        Log.d("hello", "HELP");
+        Log.d("hello", "HELP");
+        Log.d("hello", "HELP");
+        Log.d("hello", "HELP");
+        Log.d("hello", "HELP");
+        Log.d("hello", "HELP");
+
         if(myLocation != null){
             myLocation.remove();
         }
+        if(isDriver) {
+            dbRef.child("drivers").child(userId).child("latitude").setValue(currentLocation.getLatitude());
+            dbRef.child("drivers").child(userId).child("longitude").setValue(currentLocation.getLongitude());
+        }
 
         LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());
         MarkerOptions markerOptions = new MarkerOptions();
diff --git a/unirides.iml b/unirides.iml
index 0e00de23b998b4161128ee611e107649db9cbbe4..514aa146427d623db2fa9b507e93ba064ebe7aff 100644
--- a/unirides.iml
+++ b/unirides.iml
@@ -202,6 +202,7 @@
     <orderEntry type="library" name="Gradle: com.android.support:viewpager:28.0.0@aar" level="project" />
     <orderEntry type="library" name="Gradle: com.mikepenz:materialdrawer:6.0.9@aar" level="project" />
     <orderEntry type="library" name="Gradle: com.google.firebase:firebase-common:16.1.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.google.maps.android:android-maps-utils:0.5@aar" level="project" />
     <orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-integration:1.3@jar" level="project" />
     <orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-library:1.3@jar" level="project" />
     <orderEntry type="library" name="Gradle: android.arch.lifecycle:common:1.1.1@jar" level="project" />