organized in an OOP way.  Feel like a real programmer now