Layer 2: The third layer (and this is designed, but not implemented) is intended to be classes defined in the Layer 1 framework which are intended to support the general problem of implementing byte-code interpreters (such things as Frames, Exceptions, Interpreters), and language-specific classes (such as the Object model for the target language) all can possibly be implemented in terms of Layer 1