Index: binary-improvements2/MarkersMod/src/Markers.cs
===================================================================
--- binary-improvements2/MarkersMod/src/Markers.cs	(revision 430)
+++ binary-improvements2/MarkersMod/src/Markers.cs	(revision 434)
@@ -26,4 +26,6 @@
 				markers.Add (WebUtils.GenerateGuid (), (lat, lng, null));
 			}
+			
+			GameRandomManager.Instance.FreeGameRandom (random);
 		}
 
@@ -58,5 +60,5 @@
 
 			if (!markers.TryGetValue (id, out (int, int, string) properties2)) {
-				writer.WriteRaw (JsonEmptyData);
+				writer.WriteRaw (WebUtils.JsonEmptyData);
 				SendEnvelopedResult (_context, ref writer, HttpStatusCode.NotFound);
 				return;
@@ -77,24 +79,25 @@
 			_writer.WriteString (_markerId);
 			_writer.WriteRaw (jsonKeyLat);
-			_writer.WriteInt32 (_properties.Item1);
+			(int lat, int lng, string icon) = _properties;
+			_writer.WriteInt32 (lat);
 			_writer.WriteRaw (jsonKeyLng);
-			_writer.WriteInt32 (_properties.Item2);
+			_writer.WriteInt32 (lng);
 			_writer.WriteRaw (jsonKeyIcon);
-			_writer.WriteString (_properties.Item3 ?? defaultIcon);
+			_writer.WriteString (icon ?? defaultIcon);
 			_writer.WriteEndObject ();
 		}
 
 		protected override void HandleRestPost (RequestContext _context, IDictionary<string, object> _jsonInput, byte[] _jsonInputData) {
-			if (!TryGetJsonField (_jsonInput, "lat", out int lat)) {
-				SendErrorResult (_context, HttpStatusCode.BadRequest, _jsonInputData, "NO_OR_INVALID_LAT");
+			if (!JsonCommons.TryGetJsonField (_jsonInput, "lat", out int lat)) {
+				SendEmptyResponse (_context, HttpStatusCode.BadRequest, _jsonInputData, "NO_OR_INVALID_LAT");
 				return;
 			}
 
-			if (!TryGetJsonField (_jsonInput, "lng", out int lng)) {
-				SendErrorResult (_context, HttpStatusCode.BadRequest, _jsonInputData, "NO_OR_INVALID_LNG");
+			if (!JsonCommons.TryGetJsonField (_jsonInput, "lng", out int lng)) {
+				SendEmptyResponse (_context, HttpStatusCode.BadRequest, _jsonInputData, "NO_OR_INVALID_LNG");
 				return;
 			}
 
-			TryGetJsonField (_jsonInput, "icon", out string icon);
+			JsonCommons.TryGetJsonField (_jsonInput, "icon", out string icon);
 			if (string.IsNullOrEmpty (icon)) {
 				icon = null;
@@ -110,16 +113,16 @@
 
 		protected override void HandleRestPut (RequestContext _context, IDictionary<string, object> _jsonInput, byte[] _jsonInputData) {
-			if (!TryGetJsonField (_jsonInput, "lat", out int lat)) {
-				SendErrorResult (_context, HttpStatusCode.BadRequest, _jsonInputData, "NO_OR_INVALID_LAT");
+			if (!JsonCommons.TryGetJsonField (_jsonInput, "lat", out int lat)) {
+				SendEmptyResponse (_context, HttpStatusCode.BadRequest, _jsonInputData, "NO_OR_INVALID_LAT");
 				return;
 			}
 
-			if (!TryGetJsonField (_jsonInput, "lng", out int lng)) {
-				SendErrorResult (_context, HttpStatusCode.BadRequest, _jsonInputData, "NO_OR_INVALID_LNG");
+			if (!JsonCommons.TryGetJsonField (_jsonInput, "lng", out int lng)) {
+				SendEmptyResponse (_context, HttpStatusCode.BadRequest, _jsonInputData, "NO_OR_INVALID_LNG");
 				return;
 			}
 
 			bool keepIcon = !_jsonInput.TryGetValue ("icon", out _);
-			TryGetJsonField (_jsonInput, "icon", out string icon);
+			JsonCommons.TryGetJsonField (_jsonInput, "icon", out string icon);
 			if (string.IsNullOrEmpty (icon)) {
 				icon = null;
@@ -129,5 +132,5 @@
 
 			if (!markers.TryGetValue (id, out (int, int, string) properties)) {
-				SendErrorResult (_context, HttpStatusCode.NotFound, _jsonInputData, "ID_NOT_FOUND");
+				SendEmptyResponse (_context, HttpStatusCode.NotFound, _jsonInputData, "ID_NOT_FOUND");
 				return;
 			}
@@ -154,7 +157,5 @@
 			string id = _context.RequestPath;
 
-			PrepareEnvelopedResult (out JsonWriter writer);
-			writer.WriteRaw (JsonEmptyData);
-			SendEnvelopedResult (_context, ref writer, markers.Remove (id) ? HttpStatusCode.NoContent : HttpStatusCode.NotFound);
+			SendEmptyResponse (_context, markers.Remove (id) ? HttpStatusCode.NoContent : HttpStatusCode.NotFound);
 		}
 		
