Refactoring, breaking functionality out into separate files.