Started a new branch for 412

Trying a different and correction implementation.
Updates for HW04

Adding items from the UML diagram.