Nested Classes
It is possible to define Classes within Classes (Nested Classes).
A Nested Class may be either Private or Public. This is specified by a :Access Statement, which must precede the definition of any Class contents. The default is Private.
A Public Nested Class is visible from outside its containing Class and may be used directly in its own right, whereas a Private Nested Class is not and may only be used by code inside the containing Class.
However, methods in the containing Class may return instances of Private Nested Classes and in that way expose them to the calling environment.