rewrote to be OOP

rewrote to be OOP

still has issues
Corrected object issues

Corrected object issues

Moved data outside of the object