         
     }
     
-    private struct UpdateCurrentDayWhenSignificantTimePasses: EventConsumer {
+    private class UpdateCurrentDayWhenSignificantTimePasses: EventConsumer {
         
-        var scheduleAdapter: EventsScheduleAdapter
+        private let scheduleAdapter: EventsScheduleAdapter
+        
+        init(scheduleAdapter: EventsScheduleAdapter) {
+            self.scheduleAdapter = scheduleAdapter
+        }
         
         func consume(event: DomainEvent.SignificantTimePassedEvent) {
             scheduleAdapter.updateCurrentDay()
+        }
+        
+    }
+    
+    private class UpdateAdapterWhenScheduleChanges: EventConsumer {
+        
+        private let scheduleAdapter: EventsScheduleAdapter
+        
+        init(scheduleAdapter: EventsScheduleAdapter) {
+            self.scheduleAdapter = scheduleAdapter
+        }
+        
+        func consume(event: Schedule.ChangedEvent) {
+            scheduleAdapter.updateFromSchedule()
         }
         
     }

        delegate?.eventDaysDidChange(to: schedule.dayModels)
    }
    
    func consume(event: Schedule.ChangedEvent) {
        regenerateSchedule()
        
        if days != schedule.dayModels {

    
}

class EventsScheduleAdapter: EventsSchedule {
    
    private let schedule: Schedule
    private let clock: Clock
