diff --git a/Data/LHE.hs b/Data/LHE.hs
--- a/Data/LHE.hs
+++ b/Data/LHE.hs
@@ -1,34 +1,24 @@
 {-|
 
 This module provides a pure haskell implementation of a parser and writer for
-the Les-Houches event file format. (Note that the writer doesn't actually exist
-yet.)
+the Les-Houches event file format, as described in hep-ph/0609017. (Note that
+the writer doesn't actually exist yet.)
 
 -}
 module Data.LHE (
   parseEventFile,
   parseEvents,
-
-  parseRawEventFile,
-  parseRawEvents,
-
-  Event(..),
-  RawEvent(..),
 ) where
 
 import qualified Data.ByteString.Char8 as S
 
-import Text.XML.HaXml.Parse (xmlParse)
+import Text.XML.HaXml.ParseLazy (xmlParse)
 import Text.XML.HaXml.Types (Document(..), Element(..), Content(..), QName(..))
 
-data Init = Init
-  deriving (Eq, Show, Read)
-
-data Event = Event [Double] [[Double]]
-  deriving (Eq, Show, Read)
+import Data.LHA
 
-data RawEvent = RawEvent [Double] [[Double]]
-  deriving (Eq, Show, Read)
+data RawEvent = RawEvent [String] [[String]]
+  deriving (Eq, Show)
 
 parseEventFile :: String -> IO [Event]
 parseEventFile fname = do
@@ -37,8 +27,34 @@
 parseEvents :: String -> S.ByteString -> [Event]
 parseEvents fname dat =
   let re = parseRawEvents fname dat in
-    []
+    map makeEvent re
 
+makeEvent :: RawEvent -> Event
+makeEvent (RawEvent (n:idpr:xwgt:scal:aqed:aqcd:[]) rps) = Event
+  { nPart     = read n
+  , evProcId  = read idpr
+  , evWeight  = parseDouble xwgt
+  , scale     = parseDouble scal
+  , aQED      = parseDouble aqed
+  , aQCD      = parseDouble aqcd
+  , parts     = map makeParticle rps
+  }
+
+makeParticle :: [String] -> Particle
+makeParticle (pdg:stat:m1:m2:c1:c2:px:py:pz:e:m:lt:spin:[]) = Particle
+  { partPDG   = read pdg
+  , status    = statusFromInt $ read stat
+  , mothers   = PBoth (read m1, read m2)
+  , iColor    = (read c1, read c2)
+  , partPx    = parseDouble px
+  , partPy    = parseDouble py
+  , partPz    = parseDouble pz
+  , partE     = parseDouble e
+  , partM     = parseDouble m
+  , lifetime  = parseDouble lt
+  , spin      = parseDouble spin
+  }
+
 parseRawEventFile :: String -> IO [RawEvent]
 parseRawEventFile fname = do
   S.readFile fname >>= return . parseRawEvents fname
@@ -52,7 +68,7 @@
     isEvent _ = False
     isCString (CString _ _ _) = True
     isCString _ = False
-    parseLine = map parseDouble . words
+    parseLine = words
     getElem (CElem (Elem _ _ c) _) = head $ filter isCString c
     getRawEvent (CString _ eStr _) =
       let eLines = filter (\x -> length x > 2) $ lines eStr in
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2011 Scott Lawrence <bytbox@gmail.com>
+Copyright (c) 2011, 2012 Scott Lawrence <bytbox@gmail.com>
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/lhe.cabal b/lhe.cabal
--- a/lhe.cabal
+++ b/lhe.cabal
@@ -1,59 +1,20 @@
--- LHE.cabal auto-generated by cabal init. For additional options, see
--- http://www.haskell.org/cabal/release/cabal-latest/doc/users-guide/authors.html#pkg-descr.
--- The name of the package.
 Name:                lhe
-
--- The package version. See the Haskell package versioning policy
--- (http://www.haskell.org/haskellwiki/Package_versioning_policy) for
--- standards guiding when and how versions should be incremented.
-Version:             0.3
-
--- A short (one-line) description of the package.
+Version:             0.4
 Synopsis:            Parser and writer for Les-Houches event files
-
--- A longer description of the package.
 Description:         This package implements a parser and writer for the Les-Houches event file format as described in hep-ph/0609017
-
--- The license under which the package is released.
 License:             MIT
-
--- The file containing the license text.
 License-file:        LICENSE
-
--- The package author(s).
 Author:              Scott Lawrence
-
--- An email address to which users can send suggestions, bug reports,
--- and patches.
 Maintainer:          bytbox@gmail.com
-
--- A copyright notice.
--- Copyright:           
-
 Category:            Data, Physics
-
 Build-type:          Simple
-
--- Extra files to be distributed with the package, such as examples or
--- a README.
--- Extra-source-files:  
-
--- Constraint on the version of Cabal needed to build this package.
-Cabal-version:       >=1.6
-
+Cabal-version:       >=1.10
 
 Library
-  -- Modules exported by the library.
   Exposed-modules:     Data.LHE
-  
-  -- Packages needed in order to build this package.
-  Build-depends: haskell2010 >= 1.0 , HaXml >= 1.22, bytestring >= 0.9
-  
-  -- Modules not exported by this package.
+  Default-language:    Haskell2010
+  Build-depends: haskell2010 >= 1.0 , HaXml >= 1.22, bytestring >= 0.9, lha >= 0.1.2
   -- Other-modules:       
-  
-  -- Extra tools (e.g. alex, hsc2hs, ...) needed to build the source.
-  -- Build-tools:         
  
 source-repository head
   type:  git
