            [:div.plan-selection
             (om/build-all osx-plan-ga osx-plans)]
            [:div.update-action
-            [:a.btn.btn-lg.btn-success.center {:disabled (nil? (:chosen-osx-plan-id org-settings))}
-             "Pay Now"]]])))))
+            (if (and (pm/osx? plan) (not (pm/osx-trial-plan? plan)))
+              (forms/managed-button
+                [:a.btn.btn-lg.btn-success.center
+                 {:data-success-text "Success!"
+                  :data-loading-text "Updating..."
+                  :data-failed-text "Failed"
+                  :on-click update-plan-fn
+                  :disabled (nil? chosen-plan-id)}
+                 "Update"])
+              (forms/managed-button
+                [:a.btn.btn-lg.btn-success.center
+                 {:data-success-text "Success!"
+                  :data-loading-text "Paying..."
+                  :data-failed-text "Failed"
+                  :on-click new-plan-fn
+                  :disabled (nil? chosen-plan-id)}
+                 "Pay Now"]))]])))))
 
 (defn osx-plans-list [plan owner]
   (reify

         :team-size "unlimited"
         :updated-selection? true}

        {:plan-id :growth
         :title "GROWTH"
         :price 249

  (reify
    om/IRender
    (render [_]
      (let [currently-selected? (= (name plan-id) (pm/osx-plan-id plan))
            updated-selection? (= plan-id chosen-plan-id)
            trial-start? (and trial-start?
                              (not (pm/osx? plan))
