fix bug with receive
clean up; write test for big messages
all tests pass
scroll
it fucking works. clean up later