diff --git a/src/engine/mobileAI/MobHandlers/MobHandler.java b/src/engine/mobileAI/MobHandlers/MobHandler.java
index 9032a30c..ceb18638 100644
--- a/src/engine/mobileAI/MobHandlers/MobHandler.java
+++ b/src/engine/mobileAI/MobHandlers/MobHandler.java
@@ -1,14 +1,7 @@
 package engine.mobileAI.MobHandlers;
 
-import engine.Enum;
-import engine.InterestManagement.InterestManager;
 import engine.InterestManagement.WorldGrid;
-import engine.gameManager.ChatManager;
 import engine.gameManager.PowersManager;
-import engine.gameManager.ZoneManager;
-import engine.math.Vector3f;
-import engine.math.Vector3fImmutable;
-import engine.mobileAI.MobAI;
 import engine.mobileAI.Threads.MobAIThread;
 import engine.mobileAI.utilities.CombatUtilities;
 import engine.mobileAI.utilities.MovementUtilities;
diff --git a/src/engine/mobileAI/Threads/MobAIThread.java b/src/engine/mobileAI/Threads/MobAIThread.java
index 8a7d8a8a..700697cb 100644
--- a/src/engine/mobileAI/Threads/MobAIThread.java
+++ b/src/engine/mobileAI/Threads/MobAIThread.java
@@ -1,11 +1,10 @@
 package engine.mobileAI.Threads;
 
 import engine.gameManager.ConfigManager;
-import engine.mobileAI.MobAI;
 import engine.gameManager.ZoneManager;
+import engine.mobileAI.SuperSimpleMobAI;
 import engine.objects.Mob;
 import engine.objects.Zone;
-import engine.server.MBServerStatics;
 import org.pmw.tinylog.Logger;
 
 public class MobAIThread implements Runnable{
@@ -28,12 +27,40 @@ public class MobAIThread implements Runnable{
         AI_BASE_AGGRO_RANGE = (int)(60 * Float.parseFloat(ConfigManager.MB_AI_AGGRO_RANGE.getValue()));
         while (true) {
             for (Zone zone : ZoneManager.getAllZones()) {
-                if (zone != null && zone.zoneMobSet != null) {
+                if (zone != null) {
                     synchronized (zone.zoneMobSet) {
                         for (Mob mob : zone.zoneMobSet) {
                             try {
                                 if (mob != null) {
-                                    MobAI.DetermineAction(mob);
+                                    //MobAI.DetermineAction(mob);
+                                    if(mob.isSiege() || mob.isPet() || mob.isPlayerGuard()){
+                                        SuperSimpleMobAI.run(mob);
+                                        return;
+                                    }
+                                    boolean override;
+                                    switch (mob.BehaviourType) {
+                                        case GuardCaptain:
+                                        case GuardMinion:
+                                        case GuardWallArcher:
+                                        case Pet1:
+                                        case HamletGuard:
+                                            override = false;
+                                            break;
+                                        default:
+                                            override = true;
+                                            break;
+                                    }
+
+                                    if(mob.isSiege())
+                                        override = false;
+
+                                    if(mob.isPet())
+                                        override = false;
+
+                                    if(override){
+                                        SuperSimpleMobAI.run(mob);
+                                        return;
+                                    }
                                 }
                             } catch (Exception e) {
                                 Logger.error("Error processing Mob [Name: {}, UUID: {}]", mob.getName(), mob.getObjectUUID(), e);