Break out classes into individual files.

Adjust tests to reflect this.
Merge pull request #5 from linduxed/refactoring_into_multiple_files

Break out classes into individual files.