Saner and simpler type hierarchy.