partial client impl