abstract most of the logic into a MultiDay view to share with day view in the future.