modularized the client; game logic exists outside client code for it to be ported to a GUI