Ready for testing for Milestone 1
Improvements and additions planned for future milestones.

- Objective update logic will need to change
- Break into functions, comment, and improve efficiency.
- Look into union..