make lots of code partitions, unify the connection/network objs in both server and client