         left: 37
         right: 39
 
-    keyModifiers =
-        alt: (event) -> event.altKey
-        control: (event) -> event.ctrlKey
-        meta: (event) -> event.metaKey
-        shift: (event) -> event.shiftKey
-
     makeEvent = (attrArgument, option) ->
         option = option or {}
         args = attrArgument.split '.'
         eventName = args[0]
+        eventList = null
         stop = option.stop or false
         prevent = option.prevent or false
-        filtered = false
         scan = true
-        eventList = null
-        eventCondition = null
-
-        alias = alight.d.al.on.alias[eventName]
-        if alias
-            if typeof(alias) is 'string'
-                eventList = alias.split /\s+/
-            else if Array.isArray alias
-                eventList = alias
-            else
-                eventList = alias.event
-            if typeof(eventList) is 'string'
-                eventList = eventList.split /\s+/
-            eventCondition = alias.condition
-
-        filter = {}
-        filterExt = []
+        modifiers = []
+        filterByKey = null
+
+        modifier = alight.hooks.eventModifier[eventName]
+        if modifier
+            modifier = formatModifier modifier
+            if modifier.event
+                eventList = modifier.event
+                if modifier.fn
+                    modifiers.push modifier
+        if not eventList
+            eventList = [eventName]
+
         for k in args.slice(1)
             if k is 'stop'
                 stop = true

            @.attrArgument = d[1]
            return

    alight.d.al.on =
        alias: {}
        priority: 10
        init: (scope, element, expression, env) ->
            if not env.attrArgument

                    scope.$scan()
                return

            for e in eventList
                element.addEventListener e, handler
            scope.$watch '$destroy', ->
                for e in eventList
                    element.removeEventListener e, handler
            return

    directiveOption =
