adding model, view and controller