Index: binary-improvements2/WebServer/src/FileCache/AbstractCache.cs
===================================================================
--- binary-improvements2/7dtd-server-fixes/src/FileCache/AbstractCache.cs	(revision 397)
+++ binary-improvements2/WebServer/src/FileCache/AbstractCache.cs	(revision 402)
@@ -1,8 +1,8 @@
 using System.Collections.Generic;
 
-namespace AllocsFixes.FileCache {
+namespace Webserver.FileCache {
 	public abstract class AbstractCache {
 		public abstract byte[] GetFileContent (string _filename);
-		public abstract (int, int) Invalidate ();
+		public abstract (int filesDropped, int bytesDropped) Invalidate ();
 
 		protected AbstractCache () {
@@ -16,7 +16,7 @@
 			
 			foreach (AbstractCache cache in caches) {
-				(int, int) returned = cache.Invalidate ();
-				filesDropped += returned.Item1;
-				bytesDropped += returned.Item2;
+				(int files, int bytes) = cache.Invalidate ();
+				filesDropped += files;
+				bytesDropped += bytes;
 			}
 
Index: binary-improvements2/WebServer/src/FileCache/DirectAccess.cs
===================================================================
--- binary-improvements2/7dtd-server-fixes/src/FileCache/DirectAccess.cs	(revision 397)
+++ binary-improvements2/WebServer/src/FileCache/DirectAccess.cs	(revision 402)
@@ -2,5 +2,5 @@
 using System.IO;
 
-namespace AllocsFixes.FileCache {
+namespace Webserver.FileCache {
 	// Not caching at all, simply reading from disk on each request
 	public class DirectAccess : AbstractCache {
@@ -9,5 +9,5 @@
 				return File.Exists (_filename) ? File.ReadAllBytes (_filename) : null;
 			} catch (Exception e) {
-				Log.Out ("Error in DirectAccess.GetFileContent: " + e);
+				Log.Out ($"Error in DirectAccess.GetFileContent: {e}");
 			}
 
Index: binary-improvements2/WebServer/src/FileCache/InvalidateCachesCmd.cs
===================================================================
--- binary-improvements2/7dtd-server-fixes/src/FileCache/InvalidateCachesCmd.cs	(revision 397)
+++ binary-improvements2/WebServer/src/FileCache/InvalidateCachesCmd.cs	(revision 402)
@@ -2,5 +2,5 @@
 using JetBrains.Annotations;
 
-namespace AllocsFixes.FileCache {
+namespace Webserver.FileCache {
 	[UsedImplicitly]
 	public class InvalidateCachesCmd : ConsoleCmdAbstract {
Index: binary-improvements2/WebServer/src/FileCache/MapTileCache.cs
===================================================================
--- binary-improvements2/7dtd-server-fixes/src/FileCache/MapTileCache.cs	(revision 397)
+++ 	(revision )
@@ -1,145 +1,0 @@
-using System;
-using System.IO;
-using UnityEngine;
-using UnityEngine.Profiling;
-using Object = UnityEngine.Object;
-
-namespace AllocsFixes.FileCache {
-	// Special "cache" for map tile folder as both map rendering and webserver access files in there.
-	// Only map rendering tiles are cached. Writing is done by WriteThrough.
-	public class MapTileCache : AbstractCache {
-		private readonly byte[] transparentTile;
-		private CurrentZoomFile[] cache;
-
-		public MapTileCache (int _tileSize) {
-			Texture2D tex = new Texture2D (_tileSize, _tileSize);
-			Color nullColor = new Color (0, 0, 0, 0);
-			for (int x = 0; x < _tileSize; x++) {
-				for (int y = 0; y < _tileSize; y++) {
-					tex.SetPixel (x, y, nullColor);
-				}
-			}
-
-			transparentTile = tex.EncodeToPNG ();
-			Object.Destroy (tex);
-		}
-
-		public void SetZoomCount (int _count) {
-			cache = new CurrentZoomFile[_count];
-			for (int i = 0; i < cache.Length; i++) {
-				cache [i] = new CurrentZoomFile ();
-			}
-		}
-
-		public byte[] LoadTile (int _zoomlevel, string _filename) {
-			try {
-				lock (cache) {
-					CurrentZoomFile cacheEntry = cache [_zoomlevel];
-
-					if (cacheEntry.filename != null && cacheEntry.filename.Equals (_filename)) {
-						return cacheEntry.pngData;
-					}
-
-					cacheEntry.filename = _filename;
-
-					if (!File.Exists (_filename)) {
-						cacheEntry.pngData = null;
-						return null;
-					}
-
-					Profiler.BeginSample ("ReadPng");
-					cacheEntry.pngData = ReadAllBytes (_filename);
-					Profiler.EndSample ();
-
-					return cacheEntry.pngData;
-				}
-			} catch (Exception e) {
-				Log.Warning ("Error in MapTileCache.LoadTile: " + e);
-			}
-
-			return null;
-		}
-
-		public void SaveTile (int _zoomlevel, byte[] _contentPng) {
-			try {
-				lock (cache) {
-					CurrentZoomFile cacheEntry = cache [_zoomlevel];
-
-					string file = cacheEntry.filename;
-					if (string.IsNullOrEmpty (file)) {
-						return;
-					}
-					
-					cacheEntry.pngData = _contentPng;
-
-					Profiler.BeginSample ("WritePng");
-					using (Stream stream = new FileStream (file, FileMode.Create, FileAccess.ReadWrite, FileShare.None,
-						4096)) {
-						stream.Write (_contentPng, 0, _contentPng.Length);
-					}
-					Profiler.EndSample ();
-				}
-			} catch (Exception e) {
-				Log.Warning ("Error in MapTileCache.SaveTile: " + e);
-			}
-		}
-
-		public void ResetTile (int _zoomlevel) {
-			try {
-				lock (cache) {
-					cache [_zoomlevel].filename = null;
-					cache [_zoomlevel].pngData = null;
-				}
-			} catch (Exception e) {
-				Log.Warning ("Error in MapTileCache.ResetTile: " + e);
-			}
-		}
-
-		public override byte[] GetFileContent (string _filename) {
-			try {
-				lock (cache) {
-					foreach (CurrentZoomFile czf in cache) {
-						if (czf.filename != null && czf.filename.Equals (_filename)) {
-							return czf.pngData;
-						}
-					}
-
-					return !File.Exists (_filename) ? transparentTile : ReadAllBytes (_filename);
-				}
-			} catch (Exception e) {
-				Log.Warning ("Error in MapTileCache.GetFileContent: " + e);
-			}
-
-			return null;
-		}
-
-		public override (int, int) Invalidate () {
-			return (0, 0);
-		}
-
-		private static byte[] ReadAllBytes (string _path) {
-			using (FileStream fileStream = new FileStream(_path, FileMode.Open, FileAccess.Read, FileShare.Read, 4096)) {
-				int bytesRead = 0;
-				int bytesLeft = (int) fileStream.Length;
-				byte[] result = new byte[bytesLeft];
-				while (bytesLeft > 0) {
-					int readThisTime = fileStream.Read (result, bytesRead, bytesLeft);
-					if (readThisTime == 0) {
-						throw new IOException ("Unexpected end of stream");
-					}
-
-					bytesRead += readThisTime;
-					bytesLeft -= readThisTime;
-				}
-
-				return result;
-			}
-		}
-
-
-		private class CurrentZoomFile {
-			public string filename;
-			public byte[] pngData;
-		}
-	}
-}
Index: binary-improvements2/WebServer/src/FileCache/SimpleCache.cs
===================================================================
--- binary-improvements2/7dtd-server-fixes/src/FileCache/SimpleCache.cs	(revision 397)
+++ binary-improvements2/WebServer/src/FileCache/SimpleCache.cs	(revision 402)
@@ -3,5 +3,5 @@
 using System.IO;
 
-namespace AllocsFixes.FileCache {
+namespace Webserver.FileCache {
 	// Caching all files, useful for completely static folders only
 	public class SimpleCache : AbstractCache {
@@ -24,5 +24,5 @@
 				}
 			} catch (Exception e) {
-				Log.Out ("Error in SimpleCache.GetFileContent: " + e);
+				Log.Out ($"Error in SimpleCache.GetFileContent: {e}");
 			}
 
