 
   defp parse_bitfield(<<bit::size(1), rest::bytes>>, queue, acc) do
     if bit  == 1 do
-      parse_bitfield(rest, Map.merge(queue, %{acc => :initial}), (acc + 1))
+      parse_bitfield(rest, Map.merge(queue, %{acc => :found}), (acc + 1))
     else
       parse_bitfield(rest, queue, (acc + 1))
     end

        ret.(peer_data)
      :me_choke_it_interest ->
        msg1 = PeerProtocol.encode(:keep_alive)
        case @torrent_impl.get_next_piece_index(peer_data.torrent_id, Map.keys(peer_data.piece_queue)) do
          {:ok, next_piece_index} ->
            next_sub_piece_index = 0
            msg2 = PeerProtocol.encode(:request, next_piece_index, next_sub_piece_index)

        # TODO make this info useful
        # Send the message payload back to the torrent process to put together to track
        JDLogger.debug(@logger, "Have MSG: #{peer_data.name}")
        %PeerData{peer_data | piece_table: Map.merge(peer_data.piece_table, %{msg.piece_index => :found})}
      :bitfield ->
        # Similar to :have but more compact
        # TODO make this info useful
        # Again, send the payload back to the torrent process to process and track
        JDLogger.debug(@logger, "Bitfield MSG: #{peer_data.name}")
        subtable = parse_bitfield(msg.bitfield, peer_data.piece_table, 0)
        # JDLogger.debug(@logger, "BF has: #{inspect pqueue}")
        %PeerData{peer_data | piece_table: Map.merge(peer_data.piece_table, subtable, fn _k, v1, _v2 -> v1 end)}
      :piece ->
        # TODO piece
        # Send the piece information back to the torrent process to put the file together
