diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # accelerate-kullback-liebler
 
+## 0.1.1.0
+
+  * Add `scale` function
+
 ## 0.1.0.0
 
 Initial release
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright Vanessa McHale (c) 2019
+Copyright Vanessa McHale (c) 2019-2020
 
 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
 
diff --git a/accelerate-kullback-liebler.cabal b/accelerate-kullback-liebler.cabal
--- a/accelerate-kullback-liebler.cabal
+++ b/accelerate-kullback-liebler.cabal
@@ -1,9 +1,9 @@
 cabal-version:   2.0
 name:            accelerate-kullback-liebler
-version:         0.1.0.0
+version:         0.1.1.0
 license:         BSD3
 license-file:    LICENSE
-copyright:       Copyright: (c) 2019 Vanessa McHale
+copyright:       Copyright: (c) 2019-2020 Vanessa McHale
 maintainer:      vamchale@gmail.com
 author:          Vanessa McHale
 synopsis:        Kullback-Liebler divergence
@@ -15,8 +15,8 @@
     CHANGELOG.md
 
 source-repository head
-    type:     git
-    location: https://github.com/vmchale/accelerate-kullback-liebler
+    type:     darcs
+    location: https://hub.darcs.net/vmchale/accelerate-kullback-liebler
 
 flag development
     description: Enable `-Werror`
@@ -55,7 +55,8 @@
     build-depends:
         base >=4.3 && <5,
         mwc-random-accelerate -any,
-        accelerate >=1.1.0.0
+        accelerate >=1.1.0.0,
+        accelerate-kullback-liebler >=0.1.1.0
 
     if flag(development)
         ghc-options: -Werror
diff --git a/common/Data/Array/Accelerate/Test.hs b/common/Data/Array/Accelerate/Test.hs
--- a/common/Data/Array/Accelerate/Test.hs
+++ b/common/Data/Array/Accelerate/Test.hs
@@ -2,25 +2,18 @@
 {-# LANGUAGE FlexibleContexts #-}
 {-# LANGUAGE TypeFamilies     #-}
 
-module Data.Array.Accelerate.Test ( normalize
-                                  , randDist
+module Data.Array.Accelerate.Test ( randDist
                                   , the
                                   ) where
 
 import qualified Data.Array.Accelerate                   as A
-import           Data.Array.Accelerate.System.Random.MWC (Variate, randomArray,
-                                                          uniformR)
+import qualified Data.Array.Accelerate.KullbackLiebler   as KL
+import           Data.Array.Accelerate.System.Random.MWC (Variate, randomArray, uniformR)
 
 -- | Doesn't actually check the list has one element
 the :: A.Scalar e -> e
 the = head . A.toList
 
--- | Doesn't check for negative values
-normalize :: A.Floating e => A.Acc (A.Vector e) -> A.Acc (A.Vector e)
-normalize xs =
-    let tot = A.the $ A.sum xs
-    in A.map (/tot) xs
-
 -- | Make a distribution of a given size
 randDist :: (A.Shape sh, Fractional e, Variate e, A.Floating e, sh ~ A.DIM1) => sh -> IO (A.Acc (A.Vector e))
-randDist = fmap (normalize . A.use) . randomArray (uniformR (0.0, 1.0))
+randDist = fmap (KL.scale . A.use) . randomArray (uniformR (0.0, 1.0))
diff --git a/src/Data/Array/Accelerate/KullbackLiebler.hs b/src/Data/Array/Accelerate/KullbackLiebler.hs
--- a/src/Data/Array/Accelerate/KullbackLiebler.hs
+++ b/src/Data/Array/Accelerate/KullbackLiebler.hs
@@ -4,6 +4,7 @@
 module Data.Array.Accelerate.KullbackLiebler ( kullbackLiebler
                                              , entropy
                                              , dropZeroes
+                                             , scale
                                              ) where
 
 import qualified Data.Array.Accelerate as A
@@ -16,6 +17,13 @@
 entropy :: (A.Floating e) => A.Acc (A.Vector e) -> A.Acc (A.Scalar e)
 entropy = A.sum . A.map (\p -> p * log p)
 
--- | Drops zero values (for parity with scipy @entropy@ function)
 dropZeroes :: (A.Eq e, Num (A.Exp e)) => A.Acc (A.Vector e) -> A.Acc (A.Vector e)
 dropZeroes = A.afst . A.filter (A./= 0)
+
+-- | Doesn't check for negative values
+--
+-- @since 0.1.1.0
+scale :: A.Floating e => A.Acc (A.Vector e) -> A.Acc (A.Vector e)
+scale xs =
+    let tot = A.the $ A.sum xs
+    in A.map (/tot) xs
diff --git a/test/Spec.cpphs b/test/Spec.cpphs
--- a/test/Spec.cpphs
+++ b/test/Spec.cpphs
@@ -5,7 +5,7 @@
 
 import           Control.Composition                   ((.$))
 import qualified Data.Array.Accelerate                 as A
-import           Data.Array.Accelerate.KullbackLiebler (kullbackLiebler)
+import           Data.Array.Accelerate.KullbackLiebler (kullbackLiebler, scale)
 import qualified Data.Array.Accelerate.LLVM.Native     as CPU
 #ifdef ACCELERATE_GPU
 import qualified Data.Array.Accelerate.LLVM.PTX        as GPU
@@ -34,7 +34,7 @@
 commonData :: IO (A.Acc (A.Scalar Double))
 commonData = do
     datums <- randDist (A.Z A.:. 1000000)
-    pure $ kullbackLiebler .$ datums
+    pure $ kullbackLiebler .$ (scale datums)
 
 #ifdef ACCELERATE_GPU
 selfGPU :: IO Bool
