     @description - apply the method, conditionally currying the "client" object
     ###
     apply = (bongo, ctx, method, args, sessionToken, userArea, client) ->
-
       unless ctx?
-        bongo.handleUserError "bad instance! #{method.method}"
+        bongo.handleUserError "bad instance! #{method}"
         return
-      if 'function' is typeof method.method
-        fn = method.method
-      else if ctx? and 'string' is typeof method.method
+      if 'function' is typeof method
+        fn = method
+      else if ctx? and 'string' is typeof method
         # prefer the method with the trailing dollar, since this should be, by
         # convention, the version of the method which implements security for
         # a given model, and provides a wrapper for it; otherwise, search for
         # the method with the exact name.
-        fn = ctx["#{method.method}$"] ? ctx[method.method]
+        fn = ctx["#{method}$"] ? ctx[method]
       unless fn?
-        bongo.handleUserError "unknown method! #{method.method}"
+        bongo.handleUserError "unknown method! #{method}"
         return
-
-
-      applyWithMerics = (fn, ctx, args) ->
-        if bongo.metrics
-          # wrapping callback function if there is one in the args
-          if typeof (callback = args[args.length - 1]) is 'function'
-            start = new Date()
-            args[args.length - 1] = (rest...) ->
-              duration = new Date() - start
-              bongo.metrics.sendMethodMetrics { method, duration }
-              callback rest...
-          # else sending metrics with duration equal to zero
-          else
-            bongo.metrics.sendMethodMetrics { method, 0 }
-        fn.apply ctx, args
-
       if fn.isSecurityEnabled
         if client
           args = [client].concat args
-          applyWithMerics fn, ctx, args
+          fn.apply ctx, args
         else
           bongo.fetchClient sessionToken, userArea, (client) ->
             args = [client].concat args
-            applyWithMerics fn, ctx, args
+            fn.apply ctx, args
       else
-        applyWithMerics fn, ctx, args
+        fn.apply ctx, args
     ###
     @implementation
     ###

                    console.warn "#{konstructor.name} instance with id #{method.id} is not found"
                    return
                  else
                    apply this, instance, method, args, sessionToken, userArea, client
              else if method.data
                instance = new konstructor method.data
                apply this, instance, method, args, sessionToken, userArea, client
            else
              @handleUserError "No such method! #{JSON.stringify method} #{args} #{secretName}"
          else

        switch method.type
          when 'static'
            if konstructor.hasSharedMethod method.method
              apply this, konstructor, method.method, args, sessionToken, userArea, client
            else
              @handleUserError "No such method! #{JSON.stringify method} #{args} #{secretName}"
          when 'instance'
