Переработка программы, изменена логика построения данных для страницы календаря, построение страницы вынесено в отдельную абстракцию и опирается на общий класс элемента страницы; отрисовка страницы также вынесена в отдельную абстракцию, в программу внедрены две зависимости - от фабрики построения данных страницы на основе даты и от сервиса отрисовки страницы, теперь эти компоненты независимы и могут быть переписаны без необходимости залазить в код конкретных реализаций, что делает программу более общей.