           paymentField.addSubView new BillingMethodView {}, method
 
           @choiceForm.addCustomData 'accountCode', method.accountCode
+          @currentMethod = method
 
         else
 
-          paymentField.addSubView new KDSelectBox
-            defaultValue  : preferredAccountCode ? methods[0].accountCode
+          methodsByAccountCode =
+            methods.reduce( (acc, method) ->
+              acc[method.accountCode] = method
+              acc
+            , {})
+
+          defaultAccountCode = preferredAccountCode ? methods[0].accountCode
+
+          @currentMethod = methodsByAccountCode[defaultAccountCode]
+
+          select = new KDSelectBox
+            defaultValue  : defaultAccountCode
             name          : 'accountCode'
             selectOptions : methods.map (method) ->
               title       : KD.utils.getPaymentMethodTitle method
               value       : method.accountCode
+            callback      : (accountCode) =>
+              @currentMethod = methodsByAccountCode[accountCode]
+
+          paymentField.addSubView select
 
   addAggregateData: (formData) ->
     for own key, val of formData

      { accountCode } = billingInfo

      @addAggregateData { accountCode }
      @setState 'confirm', billingInfo

    form


class BuyVmModal extends KDModalView

  constructor: (options = {}, data) ->
    do (o = options) ->
      o.title    ?= "Create a new VM"
