added ClientInterface