added client server functionality