divide project into a server and a client hierarchy