       else if method?.method
         konstructor = Base.constructors[method.constructorName]
         unless konstructor?
-          console.warn "No such constructor! #{method.constructorName}"
+          @handleUserError "No such constructor! #{method.constructorName}", args
           return
 
-        validCall = konstructor.testSignature method.type, method.method, args
+        [validCall, signatures] = konstructor.testSignature \
+          method.type, method.method, args
+
         unless validCall
-          console.warn "unrecognized signature:", method, args
+          signatures = " Possible signatures are #{JSON.stringify signatures}"
+          @handleUserError "Unrecognized signature for #{konstructor.name}.#{method.method}#{signatures ? ''}", args
           return
 
         switch method.type

            fn.apply ctx, args
      else
        fn.apply ctx, args
    ###
    @implementation
    ###
    (method, args, userArea, sessionToken, secretName, client)->
      unless method?
        @handleUserError 'No such method'
      else if method is 'ping' then @pong args[0]
      else if method is 'monitorPresence' then @monitorPresence args[0]
      else if method is 'authenticateUser' then @authenticateUser args... # TODO: this doesn't need to be specialcase. C.T.

    @description - apply the method, conditionally currying the "client" object
    ###
    apply = (bongo, ctx, method, args, sessionToken, userArea, client) ->

      unless ctx?
        bongo.handleUserError "Bad instance! #{method}", args
        return

      if 'function' is typeof method
        fn = method
      else if ctx? and 'string' is typeof method
