Next: Back end methods, Up: Architecture

### 4.1 Initializing

A scheme must be initialized before it is used. It had better guarantee to keep only one instance of a scheme.

The following code is snipped out of `pgg-gpg.el`. Once an instance of `pgg-gpg` scheme is initialized, it's stored to the variable `pgg-scheme-gpg-instance` and will be reused from now on.

         (defvar pgg-scheme-gpg-instance nil)

         (defun pgg-make-scheme-gpg ()
           (or pgg-scheme-gpg-instance
               (setq pgg-scheme-gpg-instance
                     (luna-make-entity 'pgg-scheme-gpg))))

The name of the function must follow the regulation—`pgg-make-scheme-` follows the back end name.