diff --git a/.gitignore b/.gitignore
index 3b99327..1ff8b34 100644
--- a/.gitignore
+++ b/.gitignore
@@ -20,6 +20,7 @@ src/EllieBot/credentials.json
 src/EllieBot/old_credentials.json 
 src/EllieBot/credentials.json.bak
 src/EllieBot/data/EllieBot.db
+ellie-menu.ps1
 
 # Created by https://www.gitignore.io/api/visualstudio,visualstudiocode,windows,linux,macos
 
diff --git a/EllieBot.sln b/EllieBot.sln
index 267f7b4..306d678 100644
--- a/EllieBot.sln
+++ b/EllieBot.sln
@@ -7,9 +7,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{B28FB883-968
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{6C633450-E6C2-47ED-A7AA-7367232F703A}"
 	ProjectSection(SolutionItems) = preProject
-		build.ps1 = build.ps1
 		CHANGELOG.md = CHANGELOG.md
 		Dockerfile = Dockerfile
+		ellie-menu.ps1 = ellie-menu.ps1
 		LICENSE = LICENSE
 		migrate.ps1 = migrate.ps1
 		README.md = README.md
diff --git a/src/EllieBot/Bot.cs b/src/EllieBot/Bot.cs
index a549e65..8231479 100644
--- a/src/EllieBot/Bot.cs
+++ b/src/EllieBot/Bot.cs
@@ -90,16 +90,16 @@ public sealed class Bot : IBot
     public IReadOnlyList<ulong> GetCurrentGuildIds()
         => Client.Guilds.Select(x => x.Id).ToList().AsReadOnly();
 
-    private void AddServices()
+    private async Task AddServices()
     {
         var startingGuildIdList = GetCurrentGuildIds();
         var startTime = Stopwatch.GetTimestamp();
         var bot = Client.CurrentUser;
 
-        using (var uow = _db.GetDbContext())
+        await using (var uow = _db.GetDbContext())
         {
             uow.EnsureUserCreated(bot.Id, bot.Username, bot.Discriminator, bot.AvatarId);
-            AllGuildConfigs = uow.GuildConfigs.GetAllGuildConfigs(startingGuildIdList);
+            AllGuildConfigs = await uow.GuildConfigs.GetAllGuildConfigs(startingGuildIdList);
         }
 
         // var svcs = new StandardKernel(new NinjectSettings()
@@ -265,7 +265,7 @@ public sealed class Bot : IBot
         Log.Information("Shard {ShardId} loading services...", Client.ShardId);
         try
         {
-            AddServices();
+            await AddServices();
         }
         catch (Exception ex)
         {
diff --git a/src/EllieBot/Db/Extensions/GuildConfigExtensions.cs b/src/EllieBot/Db/Extensions/GuildConfigExtensions.cs
index 1c5a27d..d1471ad 100644
--- a/src/EllieBot/Db/Extensions/GuildConfigExtensions.cs
+++ b/src/EllieBot/Db/Extensions/GuildConfigExtensions.cs
@@ -1,5 +1,6 @@
 #nullable disable
 using Microsoft.EntityFrameworkCore;
+using LinqToDB.EntityFrameworkCore;
 using EllieBot.Db.Models;
 
 namespace EllieBot.Db;
@@ -42,7 +43,7 @@ public static class GuildConfigExtensions
     }
 
     private static IQueryable<GuildConfig> IncludeEverything(this DbSet<GuildConfig> configs)
-        => configs.AsQueryable()
+        => configs
             .AsSplitQuery()
             .Include(gc => gc.CommandCooldowns)
             .Include(gc => gc.FollowedStreams)
@@ -51,14 +52,13 @@ public static class GuildConfigExtensions
             .Include(gc => gc.XpSettings)
                 .ThenInclude(x => x.ExclusionList);
 
-    public static IReadOnlyCollection<GuildConfig> GetAllGuildConfigs(
+    public static Task<GuildConfig[]> GetAllGuildConfigs(
         this DbSet<GuildConfig> configs,
         IReadOnlyList<ulong> availableGuilds)
         => configs.IncludeEverything()
                   .AsNoTracking()
                   .Where(x => availableGuilds.Contains(x.GuildId))
-                  .ToList()
-                  .AsReadOnly();
+                  .ToArrayAsyncEF();
 
     /// <summary>
     ///     Gets and creates if it doesn't exist a config for a guild.