renamed and restructured classes