Restructured into smaller, more modular files.
Cleaned up and stubbed unit tests.