anchor.diff:                  url: "welcome/updated_coords",
                   success: plotCoords // callback handler
               });
  -
  -            setTimeout(updateCoords, 7000);
  +            setTimeout(updateCoords, 10000); // update every 10 seconds
  +        }
  +
  +
  +
  +        /* ***************** Code for filter UI that allows users to remove and deselect racers ***************** */
  +
  +        // find reference to filter UI and set its title
  +        var filter = document.getElementById('filter-racers');
  +        var title_item = filter.appendChild(document.createElement('div'));
  +        var title_label = title_item.appendChild(document.createElement('label'));
  +        title_label.innerHTML = "Selected Racers";
  +
  +        var checkboxes = [];
  +        // create a filter interface.
  +        for (var i = 0; i < selected_racers.length; i++) {
  +            // item will contain input checkbox and label
  +            var item = document.createElement('div');
  +            filter.appendChild(item);
  +            item.id = selected_racers[i];
  +
  +            // create checkbox and div to contain it
  +            var checkbox_div = document.createElement('div');
  +            checkbox_div.className = "container-inline";
  +            item.appendChild(checkbox_div);
  +            var checkbox = document.createElement('input');
  +            checkbox_div.appendChild(checkbox);
  +            checkbox.type = 'checkbox';
  +            checkbox.id = selected_racers[i]; // bib number is id for box
  +            checkbox.checked = true;
  +            checkboxes.push(checkbox);
  +
  +            // create a label to the right of the checkbox with racer bib number
  +            var label = document.createElement('label');
  +            label.className = "container-inline";
  +            item.appendChild(label);
  +            label.innerHTML = "BibNo: " + selected_racers[i];
  +            label.setAttribute('for', selected_racers[i]);
  +        }
  +
  +        // create button to remove racers with unchecked checkbox
  +        var update_item = filter.appendChild(document.createElement('div'));
  +        var update_button = document.createElement('button');
  +        var update_text = document.createTextNode('Update');
  +        update_button.appendChild(update_text);
  +        update_item.appendChild(update_button);
  +        update_button.addEventListener('click', update);
  +
  +        // function called whenever someone clicks update button
  +        // function removes racer's marker with unchecked checkbox
  +        function update() {
  +            var to_keep = [];
  +            var to_delete_filters = []; // array to identify which divs to remove in filter UI
  +            var to_delete_indices = []; // array to identify which markers to remove from map
  +            var i;
  +            // run through each checkbox and record whether it is checked
  +            // if it is, add id (aka bibNo) to to_keep so racer marker stays on map
  +            for (i = 0; i < checkboxes.length; i++) {
  +                if (checkboxes[i].checked) {
  +                    // keep bib number associated with checkbox
  +                    to_keep.push(Number(checkboxes[i].id));
  +                }
  +                else {
  +                    to_delete_filters.push(checkboxes[i].id);
  +                    to_delete_indices.push(i);
  +
  +                    console.log("Going to delete index: " + i);
  +                    console.log("Going to delete id: " + checkboxes[i].id);
  +                }
  +            }
  +
  +            // delete racer from map and checkbox and label from filter UI
  +            var orig_len = to_delete_filters.length;
  +            for (i = 0; i < orig_len; i++) {
  +                // need to delete starting from end of list so indices do not get mixed up
  +                var index = orig_len - (i + 1);
  +
  +                // delete marker from map
  +                var racer_marker = racer_markers[to_delete_indices[index]];
  +                racer_markers.splice(to_delete_indices[index], 1);
  +                map.removeLayer(racer_marker);
  +
  +                // delete checkbox referencing marker from filter
  +                var checkbox_marker = to_delete_indices[index];
  +                checkboxes.splice(checkbox_marker, 1);
  +
  +                // delete div from filter
  +                var div_marker = document.getElementById(to_delete_filters[index].toString());
  +                div_marker.remove();
  +
  +                console.log("Going to delete index: " + to_delete_indices[index]);
  +                console.log("Going to delete id: " + to_delete_filters[index]);
  +            }
  +
  +            localStorage.setItem(key, JSON.stringify(to_keep));
  +            console.log(localStorage.getItem(key));
  +
  +            alert("Check console log from browser to view selected bibs. update")
           }
   
           updateCoords();
  
positive.code:                 racer_marker.bindPopup("Racer: " + current_racer.bib + ", Time: " + current_racer.time);
                  racer_marker.setOpacity(1);
              }
          }
  
          function updateCoords() {
  
negative.code:         }
  
          // use json located in content from html to update coordinates for racers
          // Precondition: html page has json with racer information contained in div specified by JSON_DIV_ID
          //               selected_racers and racer_markers are of the same length
          function plotCoords(html) {
              var JSON_DIV_ID = "div#racers_info";
  
              // obtain racers information contained in div
              var tmp = jQuery('<div>').html(html);
              var racers_json = JSON.parse( tmp.find(JSON_DIV_ID).html() );
              selected_racers = JSON.parse(localStorage.getItem(key)); // view _header to see how bibs are stored
  
              // update markers for selected racers on map
              var i;
  