basic design of client