Refactored classes into separate files