Milestones 4 and 5 initial code.
Improved error message feedback.