PGG introduces the notion of a "scheme of PGP implementation" (used interchangeably with "scheme" in this document). This term refers to a singleton object wrapped with the luna object system.
Since PGG was designed for accessing and developing PGP functionality, the architecture had to be designed not just for interoperability but also for extensibility. In this chapter we explore the architecture while finding out how to write the PGG back end.