splitting out into server and client modules - part 1