anchor.diff:          true -> score(Query, T)
       end.
   
  +% Remove a requestor from the list of requestors.
  +% Used when we got a result for that person and they've been notified already
   remove(_Requestor, [{null, _}]) -> [{null, {null, null}}];
   remove(Requestor, [{H, R}|T]) ->
       case Requestor == R of
  
positive.code:             end
      end.
  
  
  background_scheduler() ->
      receive
          Hashtag -> scraper:scrape(Hashtag)
      end,
      receive
      after ?BFREQ -> background_scheduler()
      end.
  
  priority_scheduler() -> priority_scheduler(?NUM_PRIORITY_THREADS).
  
  priority_scheduler(0) -> 
      receive
      after ?PFREQ -> priority_scheduler(1)
      end;
  
  % I am really not sure what line 73 is trying to do here... 
  % If it doesn't succeed in getting a Hashtag in 10 seconds, it tries
  % to increase the number of allowed schedules by 1? ~ Gabe
  priority_scheduler(N) ->
      receive
          Hashtag -> scraper:scrape(Hashtag),
                     priority_scheduler(N-1)
      after ?PFREQ -> priority_scheduler(min_of(N+1, ?NUM_PRIORITY_THREADS))
      end.
  
  %% Helper Functions %%
  
  crawl([]) -> ok;
  
  crawl([H|T]) ->
      whereis(background_scheduler) ! H,
      crawl(T).
  
  score(Query, [{Hashtag, Score}|T]) ->
      if
          Hashtag == Query -> Score;
  
negative.code:     register(master, spawn(fun() -> loop(HashList, Requests) end)),
      ok.
  
  % Listen for and keep track of requests and results. Message as appropriate.
  loop(HashList, Requests) ->
      receive
          {result, Hashtag, Score, HashtagList} -> 
  