Added server and client implementation