diagram type Classes