restructured class