         cssClass  : "modal-cancel"
         callback  : => @emit 'CancelRequested'
 
-    options.fields ?=
+    options.fields ?= {}
 
-      title             :
-        label           : "Title"
-        placeholder     : options.placeholders?.title
-        defaultValue    : data.decoded 'title'
-        required        : 'Title is required!'
+    options.fields.title ?=
+      label           : "Title"
+      placeholder     : options.placeholders?.title
+      defaultValue    : data.decoded 'title'
+      required        : 'Title is required!'
 
-      description       :
-        label           : "Description"
-        placeholder     : options.placeholders?.description or "(optional)"
-        defaultValue    : data.decoded 'description'
+    options.fields.description ?=
+      label           : "Description"
+      placeholder     : options.placeholders?.description or "(optional)"
+      defaultValue    : data.decoded 'description'
 
-      subscriptionType  :
-        label           : "Subscription type"
-        itemClass       : KDSelectBox
-        defaultValue    : data.subscriptionType ? "mo"
-        selectOptions   : @getSubscriptionTypes options
-        callback        : @bound 'subscriptionTypeChanged'
+    options.fields.subscriptionType ?=
+      label           : "Subscription type"
+      itemClass       : KDSelectBox
+      defaultValue    : data.subscriptionType ? "mo"
+      selectOptions   : @getSubscriptionTypes options
+      callback        : @bound 'subscriptionTypeChanged'
 
     options.fields.feeAmount ?=
       label           : "Amount"

      feeAmount       =
        unless priceIsVolatile
        then i.feeAmount.getValue() * 100

      { subscriptionType, feeUnit, feeInterval } = @getPlanInfo()



  priceVolatilityChanged: ->
    enabled = @inputs.priceIsVolatile.getValue()
    do @fields.feeAmount[if enabled then 'hide' else 'show']

  tagsChanged: ->
    { tags } = @inputs
    tags.setValue (@utils.splitTrim tags.getValue()).join ', '