Refactored the classes to be in their own headers.