finishes phase 1
finishes phase II
finishes phase IV
finishes phase IV and a half
finishes phase V
finishes phase VI
fix phase VI input box
fixes phase VI via client-side validation
minor fixes from solution