** Temp Commit: Compiles and works, but bugs need to be fixed and TODO items need to be addressed.