break code into client/server modules