Basic refactoring to domain objects, fixes #5
Merge pull request #20 from jschairb/add_domain_objects

Basic refactoring to domain objects, fixes #5