Fix up error handling, do date validation (ish)