the client side with gui