diff --git a/app/main/routes.py b/app/main/routes.py
index ed3b332..8e55414 100644
--- a/app/main/routes.py
+++ b/app/main/routes.py
@@ -127,25 +127,29 @@ def poll_locations(game_name):
     requested_users = get_value_if_key_exists(payload, 'requested_users', 'none')
     #print(f'mode: {mode}\nlast_request: {last_update}\nrequested_users: {requested_users}')
     response_objects = []
-    if role == Role.owner:
+    if role in (Role.owner, Role.hunter):
         for username in requested_users:
-            user = get_user_locations(game, username, mode, last_update)
-            if user:
-                response_objects.append(user)
+            locations = get_user_locations(game, username, mode, last_update, role == Role.hunter)
+            #print(locations)
+            if locations:
+                response_objects.append(locations)
     response_objects = [obj for obj_list in response_objects for obj in obj_list]
     return json.dumps(response_objects, cls=LocationEncoder)
 
 def get_value_if_key_exists(dictionary, key, default=None):
     return dictionary[key] if key in dictionary else default
 
-def get_user_locations(game, username, mode, last_update):
+def get_user_locations(game, username, mode, last_update, hunter=False):
     user = User.query.filter_by(name=username).first()
     if user is None:
         return None
+    if hunter and user.role_in_game(game) != Role.bunny:
+        return None
     if mode == 'accumulative':
-        if game.end_time or datetime.min < last_update:
+        if game.end_time or datetime.max < last_update: # Don't return locations when the game is finished
             return []
-        locations = user.locations_during_game(game)
+        offset = current_app.config['HUNTER_LOCATION_DELAY'] if hunter else 0
+        locations = user.locations_during_game(game, offset)
         if not locations:
             return None
         return [location for location in locations if location.timestamp - last_update > timedelta(milliseconds=1)]
diff --git a/app/templates/game_hunter_dashboard.html b/app/templates/game_hunter_dashboard.html
index 4641f31..24c53ac 100644
--- a/app/templates/game_hunter_dashboard.html
+++ b/app/templates/game_hunter_dashboard.html
@@ -4,7 +4,6 @@
 {{ super() }}
 
 
-
 {% endblock %}
 
 {% block player_app_content %}
@@ -75,25 +74,60 @@
 
 {% block scripts %}
 {{ super() }}
+
 
 {% endblock %}
\ No newline at end of file
diff --git a/app/templates/game_owner_dashboard.html b/app/templates/game_owner_dashboard.html
index 36f65ef..5e69343 100644
--- a/app/templates/game_owner_dashboard.html
+++ b/app/templates/game_owner_dashboard.html
@@ -134,7 +134,7 @@
     }
 
     // Poll Locations
-    usernames = JSON.parse('{{ json.dumps(game.usernames())|safe }}')
+    usernames = JSON.parse('{{ json.dumps(game.usernames())|safe }}').filter(name => name != '{{ current_user.name }}')
     setInterval(function() {
         pollLocations(
             "{{ url_for('main.poll_locations', game_name=game.name) }}",