with UI and client-server subsystems