Separated classes for easier read