worked on client implementation