diff --git a/gradle.properties b/gradle.properties
index 90991bc..b1412d4 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -9,15 +9,15 @@ modSourcesURL=https://github.com/chylex/Better-Controls
 modIssuesURL=https://github.com/chylex/Better-Controls/issues
 
 # Dependencies
-minecraftVersion=1.20.2
-neoForgeVersion=20.2.86
+minecraftVersion=1.20.3
+neoForgeVersion=20.3.8-beta
 fabricVersion=0.14.21
 loomVersion=1.3
 mixinVersion=0.8.5
 
 # Constraints
-minimumMinecraftVersion=1.20.2
-minimumNeoForgeVersion=20.2.86
+minimumMinecraftVersion=1.20.3
+minimumNeoForgeVersion=20.3.7
 minimumFabricVersion=0.12.3
 
 # Gradle
diff --git a/settings.gradle.kts b/settings.gradle.kts
index a64a062..7fba9eb 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -10,9 +10,9 @@ pluginManagement {
 	
 	plugins {
 		if (settings.extra.has("neoForgeVersion")) {
-			id("net.neoforged.gradle.vanilla") version "7.0.41"
-			id("net.neoforged.gradle.userdev") version "7.0.41"
-			id("net.neoforged.gradle.mixin") version "7.0.41"
+			id("net.neoforged.gradle.vanilla") version "7.0.61"
+			id("net.neoforged.gradle.userdev") version "7.0.61"
+			id("net.neoforged.gradle.mixin") version "7.0.61"
 		}
 		
 		if (settings.extra.has("loomVersion")) {
diff --git a/src/main/java/chylex/bettercontrols/gui/BetterControlsScreen.java b/src/main/java/chylex/bettercontrols/gui/BetterControlsScreen.java
index 67ef523..e382e5c 100644
--- a/src/main/java/chylex/bettercontrols/gui/BetterControlsScreen.java
+++ b/src/main/java/chylex/bettercontrols/gui/BetterControlsScreen.java
@@ -234,9 +234,9 @@ public class BetterControlsScreen extends OptionsSubScreen {
 		y = generateMiscellaneousOptions(y + ROW_HEIGHT, elements) + TITLE_MARGIN_TOP;
 		
 		//noinspection DataFlowIssue
-		addRenderableWidget(Button.builder(CommonComponents.GUI_DONE, btn -> minecraft.setScreen(lastScreen)).pos(width / 2 - 99, height - 29).size(200, 20).build());
+		addRenderableWidget(Button.builder(CommonComponents.GUI_DONE, btn -> minecraft.setScreen(lastScreen)).pos(width / 2 - 99, height - 25).size(200, 20).build());
 		
-		addRenderableWidget(optionsWidget = new OptionListWidget(21, height - 32, width, height, elements, y - TITLE_MARGIN_TOP + BOTTOM_PADDING));
+		addRenderableWidget(optionsWidget = new OptionListWidget(width, height - 50, 21, y - TITLE_MARGIN_TOP + BOTTOM_PADDING, elements));
 	}
 	
 	@Override
@@ -244,12 +244,15 @@ public class BetterControlsScreen extends OptionsSubScreen {
 		BetterControlsCommon.getConfig().save();
 	}
 	
+	@Override
+	public void renderBackground(final @NotNull GuiGraphics graphics, final int mouseX, final int mouseY, final float delta) {
+		renderDirtBackground(graphics);
+	}
+	
 	@Override
 	public void render(final @NotNull GuiGraphics graphics, final int mouseX, final int mouseY, final float delta) {
-		renderBackground(graphics, mouseX, mouseY, delta);
-		optionsWidget.render(graphics, mouseX, mouseY, delta);
-		graphics.drawCenteredString(font, title, width / 2, 8, TextWidget.WHITE);
 		super.render(graphics, mouseX, mouseY, delta);
+		graphics.drawCenteredString(font, title, width / 2, 8, TextWidget.WHITE);
 	}
 	
 	private void startEditingKeyBinding(final KeyBindingWidget widget) {
diff --git a/src/main/java/chylex/bettercontrols/gui/OptionListWidget.java b/src/main/java/chylex/bettercontrols/gui/OptionListWidget.java
index 1c6f0ee..6f450b5 100644
--- a/src/main/java/chylex/bettercontrols/gui/OptionListWidget.java
+++ b/src/main/java/chylex/bettercontrols/gui/OptionListWidget.java
@@ -54,8 +54,8 @@ public final class OptionListWidget extends ContainerObjectSelectionList<Entry>
 	
 	private record Offset(int x, int y) {}
 	
-	public OptionListWidget(final int top, final int bottom, final int width, final int height, final List<GuiEventListener> widgets, final int innerHeight) {
-		super(Minecraft.getInstance(), width, height, top, bottom, innerHeight);
+	public OptionListWidget(final int width, final int height, final int top, final int innerHeight, final List<GuiEventListener> widgets) {
+		super(Minecraft.getInstance(), width, height, top, innerHeight);
 		addEntry(new Entry(widgets));
 	}
 	
diff --git a/src/main/java/chylex/bettercontrols/mixin/HookControlsListWidget.java b/src/main/java/chylex/bettercontrols/mixin/HookControlsListWidget.java
index 67ac100..517da14 100644
--- a/src/main/java/chylex/bettercontrols/mixin/HookControlsListWidget.java
+++ b/src/main/java/chylex/bettercontrols/mixin/HookControlsListWidget.java
@@ -14,8 +14,8 @@ import org.spongepowered.asm.mixin.injection.Redirect;
 
 @Mixin(KeyBindsList.class)
 public abstract class HookControlsListWidget extends ContainerObjectSelectionList<Entry> {
-	public HookControlsListWidget(final Minecraft client, final int width, final int height, final int top, final int bottom, final int itemHeight) {
-		super(client, width, height, top, bottom, itemHeight);
+	public HookControlsListWidget(final Minecraft client, final int width, final int height, final int top, final int itemHeight) {
+		super(client, width, height, top, itemHeight);
 	}
 	
 	@Redirect(method = "<init>", at = @At(value = "FIELD", target = "Lnet/minecraft/client/Options;keyMappings:[Lnet/minecraft/client/KeyMapping;"))