Restructure the type hieralchy