public XmlDocument Evaluate(
            string clientID,
            string authenticationKey,
            string notificationID
            )
        {
            // monitoring
            ResourceContainer.Monitor.IncrementCounter("Evaluation API Requests");

            // create model
            EvaluationModel evaluationModel = new EvaluationModel
                                                  {
                                                          ClientID = clientID,
                                                          AuthenticationToken = authenticationKey,
                                                          NotificationID = notificationID
                                                      };

            // execute
            string traceID = Helpers.TraceID();
            ActionResult result = new EvaluationController().Execute(evaluationModel, traceID, new IdentityAgent(clientID));

            // return result
            return Helpers.CreateResponse(result.Render(), traceID);
        }