refactored classes and settings