added server and client functionality