going in the direction of a proper client class