more client implementation