Made Listener an abstract base class, moved logic to separate subclasses
Everything working as before
Peers and visualizer can connect on separate sockets