client and server modified