modify: separate view from model.