private void RequestHandler(EventHttpRequest req)
		{
			ThreadPool.QueueUserWorkItem(_ =>
				{
					var pairs = req.Uri.Split(new[] {'?'}, 2);
					var path = Uri.UnescapeDataString(pairs[0]);
					var query = pairs.Length == 2 ? pairs[1] : string.Empty;
					var nreq = new Request(req.Method, path, req.Headers,
					                             RequestStream.FromStream(new MemoryStream(req.RequestBody)), "http", query);

					var ctx = _engine.HandleRequest(nreq);
					PostProcessNancyResponse(nreq, ctx.Response);

					var ms = new MemoryStream();
					ctx.Response.Contents(ms);
					req.Respond((System.Net.HttpStatusCode) ctx.Response.StatusCode, ctx.Response.Headers, ms.ToArray());

				});
		}
		private void RequestHandler(IntPtr request, IntPtr arg)
		{
			var req = new EventHttpRequest (this, request);
			_cb (req);
		}