add client model and unit tests