 
     productForm = new VmProductForm
 
-    pay = KD.getSingleton 'paymentController'
-
-    KD.whoami().fetchPlansAndSubscriptions ['vm'], (err, plansAndSubs) =>
-      return  if KD.showError err
-      
-      { subscriptions } = pay.groupPlansBySubscription plansAndSubs
-
+    payment = KD.getSingleton 'paymentController'
+
+    payment.fetchSubscriptionsWithPlans ['vm'], (err, subscriptions) ->
       productForm.setCurrentSubscriptions subscriptions
 
     productForm.on 'PackOfferingRequested', (subscription) ->

    { JVM } = KD.remote.api

    { plan, pack } = productData
      
    if paymentMethod and not subscription

      return plan.subscribe paymentMethod.paymentMethodId, (err, subscription) =>
        return  if KD.showError err

        @provisionVm { subscription, productData }

    subscription.debit pack, (err, nonce) =>
      return  if KD.showError err

      JVM.createVmByNonce nonce, (err, vm) =>

    # fix this one on radios value cannot have some chars and that's why i keep index as the value
    descriptions = plans.map (plan) -> plan.description
    hostTypes    = plans.map (plan, i)->
      title      : plan.description.title
      value      : i
      feeAmount  : (plan.feeAmount / 100).toFixed 0

    { descriptions, hostTypes }
