uses address:port as an ID
common functionality
changed connection list to a map, and added 64bit key type (address:port) for ipv4 at least... ipv6 is going to require a restructuring of the class hierarchy i think, and a different key type