static function singleton(&$gateway_adapter)
 {
     if (!self::$instance) {
         self::$instance = new self($gateway_adapter);
     }
     return self::$instance;
 }
 protected static function singleton(GatewayType $gateway_adapter)
 {
     if (!self::$instance) {
         self::$instance = new self($gateway_adapter);
     }
     return self::$instance;
 }