client api implemented