Restructured constraint class hierarchy