modified state model, controlller and view