Furthermore submodules does not solve the issue where you may need a namespace in between (sure it's possible with enums, but this is still ugly).
SubModule.Type.Namespace.Type
-
SubModule
like always is optional -
Type.Namespace.Type
is required