public static function Chain($Type, $Formatter, $Priority = Gdn_FormatterChain::PRIORITY_DEFAULT) {
      // Grab the existing formatter from the factory.
      $Formatter = Gdn::Factory($Type.'Formatter');

      if ($Formatter === NULL) {
         $Chain = new Gdn_FormatterChain();
         Gdn::FactoryInstall($Type.'Formatter', 'Gdn_FormatterChain', __FILE__, Gdn::FactorySingleton, $Chain);
      } elseif (is_a($Formatter, 'Gdn_FormatterChain')) {
         $Chain = $Formatter;
      } else {
         Gdn::FactoryUninstall($Type.'Formatter');

         // Look for a priority on the existing object.
         if (property_exists($Formatter, 'Priority'))
            $Priority = $Formatter->Priority;
         else
            $Priority = self::PRIORITY_DEFAULT;

         $Chain = new Gdn_FormatterChain();
         $Chain->Add($Formatter, $Priority);
         Gdn::FactoryInstall($Type.'Formatter', 'Gdn_FormatterChain', __FILE__, Gdn::FactorySingleton, $Chain);
      }
      $Chain->Add($Formatter, $Priority);
      return $Chain;
   }