typing top level types lazily