Piece state is broken up into several dimensions. Implement keep-alive in connection writer. Lazily hash pieces, only as requested. Replace client actor mechanism with a mutex. Fix runConnection/connectionLoop/handshake misnomers. Fix broken reading from partially complete pieces.