separated gui logic from client screen