model and view skeleton