/**
  * Make sure all omnipay fields are required
  *
  * @todo: make this more flexible
  *
  * @return RequiredFields
  */
 public function getRequiredFields()
 {
     $required = parent::getRequiredFields();
     $gateway = $this->data()->PaymentGateway;
     $fieldgroups = $this->getPaymentFieldsGroupArray();
     $factory = new GatewayFieldsFactory($gateway, $fieldgroups);
     $fields = $factory->getFields();
     foreach ($fields as $field) {
         if (!$field->hasMethod('getName')) {
             continue;
         }
         $fieldname = $field->getName();
         if ($fieldname == "billingAddress2") {
             continue;
         }
         $required->addRequiredField($fieldname);
     }
     $paymentfieldname = $this->PaymentAmountField()->Name;
     $required->addRequiredField($paymentfieldname);
     return $required;
 }