able to download all pieces from peer, need refactoring