IClient -> AbstractClient