Refactor Date and DateStep