     steroids.debug "steroids.drawers.enableGesture called"
 
     parameters = {
-      leftView:{}
-      rightView:{}
+      left:{}
+      right:{}
+      options:{}
     }
 
-    if options.leftView?
-      if options.leftView.id?
-        parameters.leftView.id = options.leftView.id
-      else
-        parameters.leftView.url = options.leftView.location
+    if options.left?
+      @applyViewOptions options.left parameters.left
 
-    if options.rightView?
-      if options.rightView.id?
-        parameters.rightView.id = options.rightView.id
-      else
-        parameters.rightView.url = options.rightView.location
+    if options.right?
+      @applyViewOptions options.right parameters.right
 
-    if options.keepLoading == true
-      steroids.debug "steroids.drawers.enableGesture using keepLoading"
-      parameters.keepTransitionHelper = true
-
-    @applyDrawerSettings options, parameters
+    if options.options?
+      @applyDrawerSettings options.options, parameters.options
 
     steroids.nativeBridge.nativeCall
       method: "updateDrawer"

      successCallbacks: [callbacks.onSuccess]
      failureCallbacks: [callbacks.onFailure]

  # TODO: make it private.. ne need to expose in the object
  applyDrawerSettings: (options={}, parameters={}) ->

    if options.showShadow?
      parameters.showShadow = options.showShadow

      parameters.fullChange = options.fullChange

    # when fullChange = true specify a webview to be replaced in the center
    if options.center? and options.center.id?
      parameters.center = {
        id: options.center.id
      }

    steroids.nativeBridge.nativeCall
