basic notion of types