Added ClientInterface and modified Client to implement it