Separated view and controller.