Implement more MVC type file structure.
Merge branch 'Separate-Data-Collection'