diff --git a/plot-light.cabal b/plot-light.cabal
--- a/plot-light.cabal
+++ b/plot-light.cabal
@@ -1,5 +1,5 @@
 name:                plot-light
-version:             0.4.1
+version:             0.4.2
 synopsis:            A lightweight plotting library, exporting to SVG
 description:         This library provides drawing and plotting datastructures and functions; it is aimed in particular at scientific visualization, but it also exposes its plotting primitives and a small but general purpose 2D geometry library.
                      
@@ -24,11 +24,11 @@
   ghc-options:         -Wno-missing-signatures -Wno-type-defaults -Wno-name-shadowing -Wno-unused-local-binds -Wno-unused-top-binds -Wno-unused-imports
   hs-source-dirs:      src
   exposed-modules:     Graphics.Rendering.Plot.Light
-                       Data.TimeSeries
-                       Graphics.Rendering.Plot.Light.PlotTypes                       
                        Graphics.Rendering.Plot.Light.Internal.Geometry
   other-modules:       Graphics.Rendering.Plot.Light.Internal
+                       Graphics.Rendering.Plot.Light.PlotTypes                       
                        Graphics.Rendering.Plot.Light.Internal.Layout
+                       Graphics.Rendering.Plot.Light.PlotTypes.Plot1D                       
                        Graphics.Rendering.Plot.Light.PlotTypes.Heatmap
                        Graphics.Rendering.Plot.Light.PlotTypes.Scatter
                        Graphics.Rendering.Plot.Light.PlotTypes.Histogram
diff --git a/src/Data/TimeSeries.hs b/src/Data/TimeSeries.hs
deleted file mode 100644
--- a/src/Data/TimeSeries.hs
+++ /dev/null
@@ -1,61 +0,0 @@
-module Data.TimeSeries where
-
-import Data.Time
-import Data.Fixed (Pico)
-import Graphics.Rendering.Plot.Light.Internal.Utils
-
--- | An instant, defined by date (Day) and TimeOfDay
-data Tick = Tick Day TimeOfDay
-  deriving (Eq, Show, Ord)
-
--- | Create a Tick from valid (year, month, day, hour, minute, second)
-mkTick :: Integer -> Int -> Int -> Int -> Int -> Pico -> Maybe Tick
-mkTick yy mm dd hr mi se = do
-   tim <- makeTimeOfDayValid hr mi se
-   let d = fromGregorian yy mm dd
-   return $ Tick d tim
-
--- | A point in a time series
-data TsPoint a =
-  Tsp {
-    _tick :: Tick,
-    _val :: a
-    } deriving (Eq, Show)
-
-tickToFractional :: Fractional b => TsPoint a -> b
-tickToFractional = fromRational . fromTick . _tick
-
--- | Map a Tick onto the rationals
-fromTick :: Tick -> Rational
-fromTick (Tick d t) = fromIntegral (toModifiedJulianDay d) + timeOfDayToDayFraction t
-    
--- | Map a rational onto a Tick
-toTick :: Rational -> Tick
-toTick n = Tick d t
-  where
-    t = dayFractionToTimeOfDay dec
-    d = ModifiedJulianDay wh
-    (wh, dec) = wholeDecimal n
-
-
-hourTick, halfHourTick, quarterHourTick :: Rational
-hourTick = 1/24
-halfHourTick = 1/2 * hourTick
-quarterHourTick = 1/4 * hourTick
-
-
--- locTime :: IO LocalTime
--- locTime = do
---   tz <- getCurrentTimeZone
---   ct <- getCurrentTime
---   return $ utcToLocalTime tz ct
-
-
-
-
- 
-
--- tickRange :: Tick -> Tick -> Rational -> [Tick]
--- tickRange t1 t2 dt = toTick <$> [td1, td1 + dt .. td2] where
---   td1 = fromTick t1
---   td2 = fromTick t2
diff --git a/src/Graphics/Rendering/Plot/Light.hs b/src/Graphics/Rendering/Plot/Light.hs
--- a/src/Graphics/Rendering/Plot/Light.hs
+++ b/src/Graphics/Rendering/Plot/Light.hs
@@ -144,7 +144,9 @@
   -- ** Colour utilities
   blendTwo, palette, pickColour,
   -- *** ShapeCol-related
-  ShapeCol(..), Col(..), 
+  ShapeCol(..), Col(..),
+  -- ** TimeSeries utilities
+  fromTick, toTick,
   -- ** SVG utilities
   svgHeader, translateSvg, toSvgFrame, toSvgFrameLP,
   -- * Geometric types
diff --git a/src/Graphics/Rendering/Plot/Light/PlotTypes.hs b/src/Graphics/Rendering/Plot/Light/PlotTypes.hs
--- a/src/Graphics/Rendering/Plot/Light/PlotTypes.hs
+++ b/src/Graphics/Rendering/Plot/Light/PlotTypes.hs
@@ -1,13 +1,13 @@
 module Graphics.Rendering.Plot.Light.PlotTypes (module X) where
 
 import Graphics.Rendering.Plot.Light.PlotTypes.TimeSeries as X
+import Graphics.Rendering.Plot.Light.PlotTypes.Plot1D as X
 import Graphics.Rendering.Plot.Light.PlotTypes.Heatmap as X
 import Graphics.Rendering.Plot.Light.PlotTypes.Scatter as X
 import Graphics.Rendering.Plot.Light.PlotTypes.Histogram as X
 
 import Data.Parsers as X
 
-import Data.TimeSeries as X
 
 
 
diff --git a/src/Graphics/Rendering/Plot/Light/PlotTypes/Heatmap.hs b/src/Graphics/Rendering/Plot/Light/PlotTypes/Heatmap.hs
--- a/src/Graphics/Rendering/Plot/Light/PlotTypes/Heatmap.hs
+++ b/src/Graphics/Rendering/Plot/Light/PlotTypes/Heatmap.hs
@@ -129,3 +129,4 @@
 
 
 
+
diff --git a/src/Graphics/Rendering/Plot/Light/PlotTypes/Plot1D.hs b/src/Graphics/Rendering/Plot/Light/PlotTypes/Plot1D.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/Plot/Light/PlotTypes/Plot1D.hs
@@ -0,0 +1,6 @@
+module Graphics.Rendering.Plot.Light.PlotTypes.Plot1D (plotFun) where
+
+import Graphics.Rendering.Plot.Light.Internal
+
+plotFun f = fmap f' where
+  f' p@(Point x _) = LabeledPoint p (f x)
diff --git a/src/Graphics/Rendering/Plot/Light/PlotTypes/TimeSeries.hs b/src/Graphics/Rendering/Plot/Light/PlotTypes/TimeSeries.hs
--- a/src/Graphics/Rendering/Plot/Light/PlotTypes/TimeSeries.hs
+++ b/src/Graphics/Rendering/Plot/Light/PlotTypes/TimeSeries.hs
@@ -5,15 +5,15 @@
 import Control.Monad (forM_)
 
 -- import GHC.Real
--- import Data.Fixed (Pico)
--- import Data.Time
+import Data.Fixed (Pico)
+import Data.Time
+
 -- import Data.Scientific
 
 import qualified Data.Text as T
 
 import Graphics.Rendering.Plot.Light.Internal
 -- import Graphics.Rendering.Plot.Light.Internal.Utils
-import Data.TimeSeries
 
 -- For debugging
 import Text.Blaze.Svg
@@ -91,7 +91,61 @@
 
 
 
+-- | An instant, defined by date (Day) and TimeOfDay
+data Tick = Tick Day TimeOfDay
+  deriving (Eq, Show, Ord)
 
+-- | Create a Tick from valid (year, month, day, hour, minute, second)
+mkTick :: Integer -> Int -> Int -> Int -> Int -> Pico -> Maybe Tick
+mkTick yy mm dd hr mi se = do
+   tim <- makeTimeOfDayValid hr mi se
+   let d = fromGregorian yy mm dd
+   return $ Tick d tim
+
+-- | A point in a time series
+data TsPoint a =
+  Tsp {
+    _tick :: Tick,
+    _val :: a
+    } deriving (Eq, Show)
+
+tickToFractional :: Fractional b => TsPoint a -> b
+tickToFractional = fromRational . fromTick . _tick
+
+-- | Map a Tick onto the rationals
+fromTick :: Tick -> Rational
+fromTick (Tick d t) = fromIntegral (toModifiedJulianDay d) + timeOfDayToDayFraction t
+    
+-- | Map a rational onto a Tick
+toTick :: Rational -> Tick
+toTick n = Tick d t
+  where
+    t = dayFractionToTimeOfDay dec
+    d = ModifiedJulianDay wh
+    (wh, dec) = wholeDecimal n
+
+
+hourTick, halfHourTick, quarterHourTick :: Rational
+hourTick = 1/24
+halfHourTick = 1/2 * hourTick
+quarterHourTick = 1/4 * hourTick
+
+
+-- locTime :: IO LocalTime
+-- locTime = do
+--   tz <- getCurrentTimeZone
+--   ct <- getCurrentTime
+--   return $ utcToLocalTime tz ct
+
+
+-- tickRange :: Tick -> Tick -> Rational -> [Tick]
+-- tickRange t1 t2 dt = toTick <$> [td1, td1 + dt .. td2] where
+--   td1 = fromTick t1
+--   td2 = fromTick t2
+
+
+
+
 -- * Helpers
 
 -- | Create a `LabeledPoint` from a time series point (`TsPoint`). The `_tick` (time axis) field will be used for the x coordinate, whereas both fields of TsPoint may be used to create the label field.
@@ -125,8 +179,6 @@
 frameToFrameFxRow from to fxr = f <$> fxr
   where
     f = frameToFrameValue from to
-
-
 
 
 data FxRow a  = FxRow {
diff --git a/test/LibSpec.hs b/test/LibSpec.hs
--- a/test/LibSpec.hs
+++ b/test/LibSpec.hs
@@ -7,14 +7,14 @@
 
 import Graphics.Rendering.Plot.Light
 import Graphics.Rendering.Plot.Light.Internal.Geometry
-import Data.TimeSeries
+-- import Data.TimeSeries
 
 main :: IO ()
 main = hspec spec
 
 spec :: Spec
 spec = do
-  describe "Data.Timeseries" $ 
+  describe "TimeSeries" $ 
     it "correctly converts between `Tick`s and `Fractional`s" $ do
       let t0 = 57957.475
       fromTick (toTick t0) `shouldBe` t0
