refactor CalendarView