restructured classes