Code Cleanup
- Moved external definitions/interfaces into separate files to support submoduling