Initial modularization attempt, makes things much more split up and less
hacky.  Still need better file names.
Merge pull request #10 from Tribex/modularization

Initial modularization attempt, makes things much more split up.