anchor.diff:      contact_tracker(S, none).
   
   contact_tracker(S, Event) ->
  -    RequestToSend = build_request_to_send(S#state.state_pid),
  -    case perform_get_request(S#state.url,
  -			     S#state.infohash,
  -			     S#state.peer_id,
  -			     RequestToSend,
  +    case perform_get_request(S,
   			     Event) of
   	{ok, ResponseBody} ->
   	    case bcoding:decode(ResponseBody) of
  
positive.code:     end,
      {ok, RequestTime}.
  
  perform_get_request(Url, InfoHash, PeerId, Status, Event) ->
      NewUrl = build_tracker_url(Url, Status, InfoHash, PeerId, Event),
      case http:request(NewUrl) of
  	{ok, {{_, 200, _}, _, Body}} ->
  	    {ok, Body}
      end.
  
  build_tracker_url(BaseUrl, TrackerRequest, IHash, PrId, Evt) ->
      %% TODO: Use io_lib:format for this!
      InfoHash = lists:concat(["info_hash=", IHash]),
      PeerId   = lists:concat(["peer_id=", PrId]),
      %% Ignore port for now
      Uploaded = lists:concat(["uploaded=",
  			     TrackerRequest#tracker_request.uploaded]),
      Downloaded = lists:concat(["downloaded=",
  			       TrackerRequest#tracker_request.downloaded]),
      Left = lists:concat(["left=", TrackerRequest#tracker_request.left]),
      Event = case Evt of
  		none -> "";
  		E -> lists:concat(["&event=", E])
  	    end,
      lists:concat([BaseUrl, "?",
  		  InfoHash, "&",
  		  PeerId, "&",
  		  Uploaded, "&",
  		  Downloaded, "&",
  		  Left, %% The Event adds this itself.
  		  Event]).
  
negative.code: 		    RequestTime
  	    end
      end.
  
  % TODO: This doesn't really belong here. Consider moving to bcoding..
  find_in_bcoded(BCoded, Term, Default) ->
  