anchor.diff:      Assignments = dict:update(Pid, fun(L) -> lists:delete(Pn, L) end,
   			      [], S#state.piece_assignment),
       Left = S#state.left - DataSize,
  -    if
  -	Left == 0 ->
  -	    torrent_control:seed(S#state.control_pid)
  +    case Left == 0 of
  +	true ->
  +	    torrent_control:seed(S#state.control_pid);
  +	false ->
  +	    ok
       end,
       {reply, ok, S#state { left = Left, piece_assignment = Assignments}};
   handle_call({downloaded_data, Amount}, _From, S) ->
  
positive.code:     {Set, MissingSet, Size}.
  
  piece_valid(PieceNum, S) ->
      if
  	(PieceNum < S#state.num_pieces) and (PieceNum >= 0) ->
  	    true;
  	true ->
  	    false
      end.
  
  find_piece_size(PieceNum, S) when PieceNum == (S#state.num_pieces-1) ->
      S#state.torrent_size rem S#state.piece_size;
  
negative.code: 		    {report_from_tracker, Complete, Incomplete}).
  
  retrieve_bitfield(Pid) ->
      gen_server:call(Pid,  retrieve_bitfield, 10000).
  
  remote_have_piece(Pid, PieceNum) ->
      gen_server:call(Pid, {remote_have_piece, PieceNum}).
  