added comments, removed currently used exception handling
added a check to see if we need to select a random peer before actually selecting it
added comments, multiple handlers, on_connect, on_disconnect, test for sending messages, exception handling
added tests for broadcasts