     app: 'app'
     org: 'org'
 
+  actionHandler = (e)->
+    try
+      source  = $(e.currentTarget)
+      action  = source.data("hull-action")
+      fn = @actions[action] || @["#{action}Action"]
+      unless _.isFunction(fn)
+        throw new Error("Can't find action #{action} on this Widget")
+      options = {}
+      options[decamelize(k).replace("hull_", "")] = v for k,v of source.data()
+      fn.call(@, source, e, options)
+    catch e
+      console.error("oops... missed action?", e.message, e)
+    finally
+      e.stopPropagation()
+      e.stopImmediatePropagation()
+
+
   class HullWidget extends Backbone.View
 
     actions: {}

        unless @className?
          @className = "hull-widget"
          @className += " hull-#{@namespace}" if @namespace?
        _.each _.functions(@actions), (f)=> @actions[f] = _.bind(@actions[f], @)
        @datasources = _.extend({}, default_datasources, @datasources || {}, options.datasources || {})
        @sandbox.on(refreshOn, (=> @refresh()), @) for refreshOn in (@refreshEvents || [])
      catch e

      try
        @events = if _.isFunction(@events) then @events() else @events
        @events ?= {}
        @events["click [data-hull-action]"] = actionHandler

        # Building actions hash
        @actions = if _.isFunction(@actions) then @actions() else @actions
