diff --git a/README.md b/README.md
index 3e009b7..abef5ea 100644
--- a/README.md
+++ b/README.md
@@ -32,7 +32,7 @@
 * [ЧаВо](#ЧаВо)
 
 # Социальные ресурсы
-[![discord](https://img.shields.io/discord/404358247621853185.svg?label=enter%20to%20discord%20server&style=for-the-badge&logo=discord)](https://discord.gg/5GZVde6)
+[![discord](https://img.shields.io/discord/404358247621853185.svg?label=enter%20to%20discord%20server&style=for-the-badge&logo=discord)](https://discord.gg/UQjdcbcHSf)
 
 # Установка
 
@@ -299,10 +299,15 @@ class EcsStartup {
 # Статьи
 
 * ["Создание dungeon crawler'а с LeoECS Lite. Часть 1"](https://habr.com/ru/post/661085/)
+
   [![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/372/b1c/ad3/372b1cad308788dac56f8db1ea16b9c9.png)](https://habr.com/ru/post/661085/)
+
 * ["Создание dungeon crawler'а с LeoECS Lite. Часть 2"](https://habr.com/ru/post/673926/)
+
   [![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/63f/3ef/c47/63f3efc473664fdaaf1a249f258e2486.png)](https://habr.com/ru/post/673926/)
+
 * ["Всё что нужно знать про ECS"](https://habr.com/ru/post/665276/)
+
   [![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/3fd/5bc/544/3fd5bc5442b03a20d52a8003576056d4.png)](https://habr.com/ru/post/665276/)
 
 # Проекты, использующие LeoECS Lite
@@ -322,6 +327,11 @@ class EcsStartup {
 
   [![](https://github.com/7Bpencil/sharpPhysics/raw/master/pictures/preview.png)](https://github.com/7Bpencil/sharpPhysics)
 
+## Без исходников
+
+* [Microbiome (WIP)](https://vk.com/microbiomegame)
+
+  [![](https://img.youtube.com/vi/WTciasBN2eQ/0.jpg)](https://www.youtube.com/watch?v=WTciasBN2eQ)
 
 # Расширения
 * [Инъекция зависимостей](https://github.com/Leopotam/ecslite-di)
diff --git a/package.json b/package.json
index fca7180..7dcde5d 100644
--- a/package.json
+++ b/package.json
@@ -4,7 +4,7 @@
     "displayName": "LeoECS Lite",
     "description": "LeoECS Lite - легковесный ECS-фреймворк, основанный на структурах. Производительность, нулевые или минимальные аллокации, минимизация использования памяти, отсутствие зависимостей от любого игрового движка - это основные цели данного фреймворка.",
     "unity": "2020.3",
-    "version": "2023.2.22",
+    "version": "2023.3.22",
     "keywords": [
         "leoecslite",
         "leoecs",
diff --git a/src/entities.cs b/src/entities.cs
index 155aae3..eac3216 100644
--- a/src/entities.cs
+++ b/src/entities.cs
@@ -74,12 +74,12 @@ public static EcsPackedEntity PackEntity (this EcsWorld world, int entity) {
 
         [MethodImpl (MethodImplOptions.AggressiveInlining)]
         public static bool Unpack (this in EcsPackedEntity packed, EcsWorld world, out int entity) {
-            if (!world.IsAlive () || !world.IsEntityAliveInternal (packed.Id) || world.GetEntityGen (packed.Id) != packed.Gen) {
-                entity = -1;
-                return false;
-            }
             entity = packed.Id;
-            return true;
+            return
+                world != null
+                && world.IsAlive ()
+                && world.IsEntityAliveInternal (packed.Id)
+                && world.GetEntityGen (packed.Id) == packed.Gen;
         }
 
         [MethodImpl (MethodImplOptions.AggressiveInlining)]
@@ -98,14 +98,13 @@ public static EcsPackedEntityWithWorld PackEntityWithWorld (this EcsWorld world,
 
         [MethodImpl (MethodImplOptions.AggressiveInlining)]
         public static bool Unpack (this in EcsPackedEntityWithWorld packedEntity, out EcsWorld world, out int entity) {
-            if (packedEntity.World == null || !packedEntity.World.IsAlive () || !packedEntity.World.IsEntityAliveInternal (packedEntity.Id) || packedEntity.World.GetEntityGen (packedEntity.Id) != packedEntity.Gen) {
-                world = null;
-                entity = -1;
-                return false;
-            }
             world = packedEntity.World;
             entity = packedEntity.Id;
-            return true;
+            return
+                world != null
+                && world.IsAlive ()
+                && world.IsEntityAliveInternal (packedEntity.Id)
+                && world.GetEntityGen (packedEntity.Id) == packedEntity.Gen;
         }
 
         [MethodImpl (MethodImplOptions.AggressiveInlining)]
@@ -113,4 +112,4 @@ public static bool EqualsTo (this in EcsPackedEntityWithWorld a, in EcsPackedEnt
             return a.Id == b.Id && a.Gen == b.Gen && a.World == b.World;
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/systems.cs b/src/systems.cs
index c013225..9f08f1b 100644
--- a/src/systems.cs
+++ b/src/systems.cs
@@ -60,7 +60,7 @@ public class EcsSystems : IEcsSystems {
         readonly List<IEcsPostRunSystem> _postRunSystems;
         readonly object _shared;
 #if DEBUG
-        bool _inited;
+        protected bool _inited;
 #endif
 
         public EcsSystems (EcsWorld defaultWorld, object shared = null) {