using Microsoft.Extensions.Logging;
 using Questionable.Model.V1;
 using Quest = Questionable.Model.Quest;
+using ValueType = FFXIVClientStructs.FFXIV.Component.GUI.ValueType;
 
 namespace Questionable.Controller;
 
 
         List<string?> answers = new();
         for (ushort i = 7; i < addonSelectString->AtkUnitBase.AtkValuesCount; ++i)
-            answers.Add(addonSelectString->AtkUnitBase.AtkValues[i].ReadAtkString());
+        {
+            if (addonSelectString->AtkUnitBase.AtkValues[i].Type == ValueType.String)
+                answers.Add(addonSelectString->AtkUnitBase.AtkValues[i].ReadAtkString());
+        }
 
         int? answer = HandleListChoice(actualPrompt, answers, checkAllSteps);
         if (answer != null)
 
 using System;
+using System.Diagnostics;
 using System.Globalization;
 using System.Numerics;
 using Dalamud.Game.ClientState.Objects;
         return currentQuest == null || !currentQuest.Quest.Data.TerritoryBlacklist.Contains(_clientState.TerritoryType);
     }
 
-    public override unsafe void Draw()
+    public override void Draw()
     {
-        if (!_clientState.IsLoggedIn || _clientState.LocalPlayer == null)
-        {
-            ImGui.Text("Not logged in.");
-            return;
-        }
+        DrawQuest();
+        ImGui.Separator();
+
+        DrawCreationUtils();
+        ImGui.Separator();
+
+        DrawQuickAccessButtons();
+    }
 
+    private unsafe void DrawQuest()
+    {
         var currentQuest = _questController.CurrentQuest;
         if (currentQuest != null)
         {
         }
         else
             ImGui.Text("No active quest");
+    }
 
-        ImGui.Separator();
+    private unsafe void DrawCreationUtils()
+    {
+        Debug.Assert(_clientState.LocalPlayer != null, "_clientState.LocalPlayer != null");
 
         ImGui.Text(
             $"Current TerritoryId: {_clientState.TerritoryType}, Flying: {(_gameFunctions.IsFlyingUnlockedInCurrentZone() ? "Yes" : "No")}");
             if (ImGui.Button("Interact"))
             {
                 ulong result = TargetSystem.Instance()->InteractWithObject(
-                    (FFXIVClientStructs.FFXIV.Client.Game.Object.GameObject*)_targetManager.Target.Address, false);
+                    (GameObject*)_targetManager.Target.Address, false);
                 _logger.LogInformation("XXXXX Interaction Result: {Result}", result);
             }
 
                                          """);
             }
         }
+    }
 
-        ImGui.Separator();
-
+    private unsafe void DrawQuickAccessButtons()
+    {
         var map = AgentMap.Instance();
         ImGui.BeginDisabled(map == null || map->IsFlagMarkerSet == 0 ||
                             map->FlagMapMarker.TerritoryId != _clientState.TerritoryType);