diff --git a/IFS.cabal b/IFS.cabal
--- a/IFS.cabal
+++ b/IFS.cabal
@@ -1,5 +1,6 @@
 Name:                IFS
-Version:             0.1
+Version:             0.1.1
+cabal-version: >=1.2
 License:             BSD3
 License-file:        LICENSE
 Author:              alpheccar
@@ -9,16 +10,25 @@
 description: Library to describe IFS and generate PPM pictures from the descriptions 
 maintainer: misc@NOSPAMalpheccar.org
 homepage: http://www.alpheccar.org
-hs-source-dirs:      src/
-ghc-options:         -O -fglasgow-exts
-exposed-Modules: 
-   Graphics.IFS,
-   Graphics.IFS.Examples,
-   Graphics.IFS.Geometry,
-   Graphics.IFS.Ppm
-build-depends:       base>=2.0, haskell98, mtl
 
-Executable:          IFS
-hs-source-dirs:      src/
-Main-is:             main.hs
-ghc-options:         -O -fglasgow-exts
+
+flag splitBase
+  description: Choose the new smaller, split-up base package.
+
+library
+  if flag(splitBase)
+    build-depends: base >= 3, containers, random >= 1.0, bytestring >= 0.9, array >= 0.1
+  else
+    build-depends: base < 3
+  exposed-Modules: 
+     Graphics.IFS,
+     Graphics.IFS.Examples,
+     Graphics.IFS.Geometry,
+     Graphics.IFS.Ppm
+  hs-source-dirs:      src/
+  ghc-options:         -O -fglasgow-exts
+
+Executable          IFS
+  hs-source-dirs:      src/
+  Main-is:             main.hs
+  ghc-options:         -O -fglasgow-exts
diff --git a/src/Graphics/IFS/Ppm.hs b/src/Graphics/IFS/Ppm.hs
--- a/src/Graphics/IFS/Ppm.hs
+++ b/src/Graphics/IFS/Ppm.hs
@@ -35,7 +35,7 @@
 import Data.Word
 import Control.Monad
 import Data.Array.Unboxed
-import System.IO
+import System.IO(hPutStr,Handle,openBinaryFile,IOMode(..),hClose)
 import Control.Exception(bracket)
 import qualified Data.ByteString as B
 import Graphics.IFS(drawIFS,IFS)
