skeleton code for client