add no-date-in-past validation; throw error messages to view