Development is mostly done on sprint 2

Code is not final, still need to finish commenting, and write test cases