refine client_api interface