Switch the script to a class

* Reorder some files to be consistent with class name.
* Script now calls a class in a namespace
* Fix coverage