spark: split descriptor building into a separate class and add logic for non-shared views
dashen: move control views to shared folder