First client implementation