diff --git a/Data/Octree/Internal.hs b/Data/Octree/Internal.hs
--- a/Data/Octree/Internal.hs
+++ b/Data/Octree/Internal.hs
@@ -20,12 +20,11 @@
 import Test.QuickCheck.Arbitrary
 
 -- | norm of a vector
--- | distance between two vectors
-norm ::  Vector3 -> Double
+norm ::  Vector v => v -> Scalar
 norm a = a `vdot` a
 
 -- | distance between two vectors
-dist ::  Vector3 -> Vector3 -> Double
+dist ::  Vector v => v -> v -> Scalar
 dist u v = norm (u - v) 
 
 data Octree a = Node { split :: Vector3,
@@ -280,7 +279,7 @@
         selectFrom' best []                                          = Just best
 
 -- | Internal method that picks from a given list a point closest to argument, 
-pickClosest ::  Vector3 -> [(Vector3, t)] -> Maybe (Vector3, t)
+pickClosest ::  Vector v => v -> [(v, t)] -> Maybe (v, t)
 pickClosest pt []     = Nothing
 pickClosest pt (a:as) = Just $ foldr (pickCloser pt) a as
 pickCloser pt va@(a, _a) vb@(b, _b) = if dist pt a <= dist pt b
diff --git a/Octree.cabal b/Octree.cabal
--- a/Octree.cabal
+++ b/Octree.cabal
@@ -1,10 +1,10 @@
 name:                Octree
-version:             0.2.0.1
+version:             0.2.1
 stability:           beta
 homepage:            https://github.com/mgajda/octree
 package-url:         http://hackage.haskell.org/package/octree
 synopsis:            Simple unbalanced Octree for storing data about 3D points
-description:         Octree data structure is relatively shallow data structure for space partitioning. [This version is not different that 0.2.1.]
+description:         Octree data structure is relatively shallow data structure for space partitioning.
 category:            Data
 license:             BSD3
 license-file:        LICENSE
