diff --git a/executables/Main.hs b/executables/Main.hs
new file mode 100644
--- /dev/null
+++ b/executables/Main.hs
@@ -0,0 +1,5 @@
+module Main
+  ( module Rattletrap
+  ) where
+
+import Rattletrap (main)
diff --git a/executables/rattletrap.hs b/executables/rattletrap.hs
deleted file mode 100644
--- a/executables/rattletrap.hs
+++ /dev/null
@@ -1,5 +0,0 @@
-module Main
-  ( module Rattletrap
-  ) where
-
-import Rattletrap (main)
diff --git a/package.yaml b/package.yaml
--- a/package.yaml
+++ b/package.yaml
@@ -9,7 +9,7 @@
     - -rtsopts
     - -threaded
     - -with-rtsopts=-N
-    main: rattletrap.hs
+    main: Main.hs
     source-dirs: executables
 extra-source-files:
 - CHANGELOG.markdown
@@ -57,4 +57,4 @@
     - -with-rtsopts=-N
     main: Main.hs
     source-dirs: tests
-version: '2.2.2'
+version: '2.2.3'
diff --git a/rattletrap.cabal b/rattletrap.cabal
--- a/rattletrap.cabal
+++ b/rattletrap.cabal
@@ -3,7 +3,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           rattletrap
-version:        2.2.2
+version:        2.2.3
 synopsis:       Parse and generate Rocket League replays.
 description:    Rattletrap parses and generates Rocket League replays.
 category:       Game
@@ -179,7 +179,7 @@
   default-language: Haskell2010
 
 executable rattletrap
-  main-is: rattletrap.hs
+  main-is: Main.hs
   hs-source-dirs:
       executables
   ghc-options: -Wall -rtsopts -threaded -with-rtsopts=-N
