Restructured class hiearchy