Using Models for Control Using Models and Languages as Guides Stratifying Rates of Change Message-based Collaborative Change and Debugging Programming Environment