*priority queue
*networking
*session
+-refactor
+ -add const qualifiers where appropriate
-peer
-rate limit interface
-where to add?
-handler?
- -peer protocol
+ -each specific request?
+ *peer protocol
*header
*handshake
*choke
*unchoke
*interested
*not_interested
- -choke_received
- -unchoke_received
- -interested_received
- -not_interested_received
- -have
- -necessary for dht?
- -skip?
- -have_received
+ *choke_received
+ *unchoke_received
+ *interested_received
+ *not_interested_received
+ *keepalive
+ *keepalive_received
+ *have
+ *have_received
-bitfield
-use to start filling priority queue of pieces
-start loading up pieces
-bitfield_received
+ -bitfield_toggle
-request
-request_receivied
-piece
-header
-handshake
-choke/unchoke
+ -interest/not
-tests
-watch
-signal handler