revised: push logic into consumer of Dates.pm