new model
 - introduction of CalendarService to calculate the different types of day in a given month