Refactored classes to separate files.