Renamed and restructured classes to reflect their function