   running: false
   #route object
   route: {}
+  #base logger when not support will be call a alert function
+  logger: (msg) ->
+    return if !@log
+    if window.console
+      console.log msg
+    else
+      alert "Not supported `console`"
   run: (options = {}) ->
     @running = true
     @log     = options["log"]     || @log
     @adapter = options["adapter"] || throw new Error("Specify adapter")
     @route   = options["route"]   || @route
+    @logger  = options["logger"]  || @logger
 
+    @logger("Logger enabled? #{@log}")
+    n = @adapter.constructor.name
+    @logger("Adapter: #{n}")
     # start
-    SiriusApplication.RouteSystem.create(@route);
+    SiriusApplication.RouteSystem.create(@route, () =>
+      @adapter.fire(document, "application:run", new Date());
+    );
 
+

        prev = current
        current = window.location.hash
        result = false
        #call first matched function
        for part in array_of_routes
          do(part) =>

        f = controller[action]
        throw "Action must be a Function" if Object.prototype.toString.call(f) isnt '[object Function]'
        f

      for url, action of routes when url.indexOf("#") != 0 && url.toString() != "404"
        do (url, action) =>
