Merged starting point of assignment 6
Manual cherry pick from previous assignment
Added end result of assignment 6