       successCallbacks: [callbacks.onSuccess]
       failureCallbacks: [callbacks.onFailure]
 
-  # TODO: make it private.. ne need to expose in the object
-  applyDrawerSettings: (options={}, parameters={}) ->
+  @applyViewOptions: (view={}, parameters={}) ->
+    if view.id?
+      parameters.id = view.id
+    else
+      parameters.url = view.location
+
+    if view.keepLoading == true
+      steroids.debug "steroids.drawers using keepLoading"
+      parameters.keepTransitionHelper = true
+
+    parameters
+
+  @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.centerView? and options.centerView.id?
      parameters.centerView = {
        id: options.centerView.id
      }

    steroids.nativeBridge.nativeCall

    steroids.debug "steroids.drawers.enableGesture called"

    parameters = {
      left:{}
      right:{}
      options:{}
    }

    if options.left?
      @applyViewOptions options.left parameters.left

    if options.right?
      @applyViewOptions options.right parameters.right

    if options.options?
      @applyDrawerSettings options.options, parameters.options

    steroids.nativeBridge.nativeCall
      method: "updateDrawer"
