add IClient interface