add some client implementation