diff --git a/hs-pgms.cabal b/hs-pgms.cabal
--- a/hs-pgms.cabal
+++ b/hs-pgms.cabal
@@ -1,5 +1,5 @@
 Name:          hs-pgms
-Version:       0.1
+Version:       0.1.0.1
 Stability:     experimental
 Copyright:     (c) 2008 Bertram Felgenhauer
 Maintainer:    Bertram Felgenhauer <int-e@gmx.de>
@@ -12,21 +12,42 @@
     and run them in a graphical UI.
 
     Inspired by <http://www.ccs.neu.edu/home/ramsdell/pgms/index.html>.
-Cabal-Version: >=1.2
+Cabal-Version: >= 1.4
 Build-Type:    Simple
 
 -- Data-Dir:      data
 Data-Files:    data/icons.png
 Extra-Source-Files: README, statistics
 
+Flag split-base
+
 Library
     HS-Source-Dirs:  src
     Exposed-Modules: Mine
 
-Executable mine
+    Build-Depends:   MonadPrompt >= 1.0.0.1, mtl
+
+    if flag(split-base)
+        Build-Depends: base >= 3, array, random
+    else
+        Build-Depends: base < 3
+
+    Extensions:	     GADTs, FlexibleContexts, Rank2Types,
+                     GeneralizedNewtypeDeriving, BangPatterns
+
+Executable hs-pgms
     HS-Source-Dirs:  src
     Main-is:         Main.hs
-    Other-Modules:   Mine, SimpleStrat, Strat1, Util,
-                     GUI, GUI.Common, GUI.Config, GUI.Stats
-    Build-Depends:   base, MonadPrompt, array, mtl, random, glib, gtk, directory
+    Other-Modules:   Mine, Util, Strategies,
+                     GUI, GUI.Common, GUI.Config, GUI.Stats,
+                     SimpleStrat, Strat1
+    Build-Depends:   MonadPrompt >= 1.0.0.1, glib, gtk
+
+    if flag(split-base)
+        Build-Depends: base >= 3, array, mtl, random, directory
+    else
+        Build-Depends: base < 3, mtl
+
     GHC-Options:     -threaded
+    Extensions:	     GADTs, FlexibleContexts, Rank2Types,
+                     GeneralizedNewtypeDeriving, BangPatterns
diff --git a/src/GUI.hs b/src/GUI.hs
--- a/src/GUI.hs
+++ b/src/GUI.hs
@@ -10,8 +10,6 @@
 -- This module is part of Haskell PGMS.
 --
 
-{-# LANGUAGE GADTs, BangPatterns #-}
-
 module GUI (
     mainGUI,
 ) where
diff --git a/src/Main.hs b/src/Main.hs
--- a/src/Main.hs
+++ b/src/Main.hs
@@ -10,8 +10,6 @@
 -- This module is part of Haskell PGMS.
 --
 
-{-# LANGUAGE GeneralizedNewtypeDeriving, GADTs, BangPatterns #-}
-
 module Main (main) where
 
 import Mine
diff --git a/src/Mine.hs b/src/Mine.hs
--- a/src/Mine.hs
+++ b/src/Mine.hs
@@ -13,8 +13,6 @@
 -- strategies. It's the core of PGMS.
 --
 
-{-# LANGUAGE GADTs, FlexibleContexts, Rank2Types, GeneralizedNewtypeDeriving #-}
-
 module Mine (
     -- * Minesweeper configurations
     Config (..),
diff --git a/src/Strategies.hs b/src/Strategies.hs
new file mode 100644
--- /dev/null
+++ b/src/Strategies.hs
@@ -0,0 +1,27 @@
+-- |
+-- Module      : Strategies
+-- Copyright   : (c) 2008 Bertram Felgenhauer
+-- License     : BSD3
+--
+-- Maintainer  : Bertram Felgenhauer <int-e@gmx.de>
+-- Stability   : experimental
+-- Portability : portable
+--
+-- This module is part of Haskell PGMS.
+--
+-- Import and export all available strategies.
+--
+
+module Strategies (
+    strategies,
+
+    simpleStrat,
+    strat1,
+) where
+
+import Mine
+import SimpleStrat
+import Strat1
+
+strategies :: [Strategy]
+strategies = [strat1, simpleStrat]
