More OOP

This allows this to be treated more like a module that users can import and use rather than a script where variables need to be changed.