whats the difference between purchase and authorize other than the AUTH_TYPE?

could this be dried up by a 

```def transaction(type, money, authorization_or_credit_card, options)
  requires!(options, :order_id)

  options.merge! /
    :ca_reference => extract_ca_reference authorization_or_credit_card,
    :authorization_or_credit_card => authorization_or_credit_card

  build_purchase_or_authorization_request(type, money, options)
end

def purchase
  commit transaction(AUTH_TYPE, money, authorization_or_credit_card, options)
end

def authorize
  commit transaction(PRE_TYPE, money, authorization_or_credit_card, options)
end

```