basic layout and client-server interaction