Video 5 hw2. Huge refactoring and design changes.  Done for today