Major refactor
Merge pull request #6 from grobertson/classy-up

Major refactor into classes