Refactored classes into separate files.