diff --git a/config/neovim/after/plugin/harpoon.lua b/config/neovim/after/plugin/harpoon.lua
index 883bdf38..4705cf3a 100644
--- a/config/neovim/after/plugin/harpoon.lua
+++ b/config/neovim/after/plugin/harpoon.lua
@@ -1,23 +1,26 @@
-local status_ok, harpoon = pcall(require, "harpoon")
-if not status_ok then
-  return
-end
-
+local harpoon = require "harpoon"
 local nmap = require("opdavies.keymap").nmap
 
-harpoon.setup {}
+harpoon:setup()
 
-nmap { "<M-h><M-l>", require("harpoon.ui").toggle_quick_menu }
-nmap { "<M-h><M-m>", require("harpoon.mark").add_file }
-
-nmap { "<leader>hl", require("harpoon.ui").toggle_quick_menu }
-nmap { "<leader>hm", require("harpoon.mark").add_file }
+nmap {
+  "<leader>hl",
+  function()
+    harpoon.ui:toggle_quick_menu(harpoon:list())
+  end,
+}
+nmap {
+  "<leader>hm",
+  function()
+    harpoon:list():append()
+  end,
+}
 
 for i = 1, 5 do
   nmap {
     string.format("<space>%s", i),
     function()
-      require("harpoon.ui").nav_file(i)
+      harpoon:list():select(i)
     end,
   }
 end