Starting to add classes and methods.  Completely untested, just putting it out there.