refactored Date package