add better date validation