
base level:
	GSocket - pure socket functions
		connect/send/receive
		knows nothing about connections, completely stateless

middle level:
	GConnection - connection state
		iac/compression/etc.
		knows nothing about the game, fires events (connect/input/disconnect)

top level:
	GPlayerConnection - input parser (GConnection derivative)
		game/player state, nanny
		responds to events from GConnection