Added model, view, controller architecture