static function singleton(&$gateway_adapter, &$custom_filter_object)
 {
     if (!self::$instance || $gateway_adapter->isBatchProcessor()) {
         self::$instance = new self($gateway_adapter, $custom_filter_object);
     }
     return self::$instance;
 }
 protected function runFilters($phase)
 {
     switch ($phase) {
         case self::PHASE_INITIAL:
             Gateway_Extras_CustomFilters_Referrer::onInitialFilter($this->gateway_adapter, $this);
             Gateway_Extras_CustomFilters_Source::onInitialFilter($this->gateway_adapter, $this);
             Gateway_Extras_CustomFilters_Functions::onInitialFilter($this->gateway_adapter, $this);
             Gateway_Extras_CustomFilters_IP_Velocity::onInitialFilter($this->gateway_adapter, $this);
             break;
         case self::PHASE_VALIDATE:
             Gateway_Extras_CustomFilters_Functions::onFilter($this->gateway_adapter, $this);
             Gateway_Extras_CustomFilters_MinFraud::onFilter($this->gateway_adapter, $this);
             Gateway_Extras_CustomFilters_IP_Velocity::onFilter($this->gateway_adapter, $this);
             break;
     }
 }