updated Client Architecture