[Task #4] model and view