major changes in model, view and controller