diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,2 +1,26 @@
-Copyright Alberto Ruiz 2009
-GPL license
+Copyright (c) 2009-2014 Alberto Ruiz
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+    * Neither the name of the <organization> nor the
+      names of its contributors may be used to endorse or promote products
+      derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
diff --git a/hTensor.cabal b/hTensor.cabal
--- a/hTensor.cabal
+++ b/hTensor.cabal
@@ -1,6 +1,6 @@
 Name:               hTensor
-Version:            0.8.1
-License:            GPL
+Version:            0.8.2
+License:            BSD3
 License-file:       LICENSE
 Author:             Alberto Ruiz
 Maintainer:         Alberto Ruiz <aruiz@um.es>
@@ -33,16 +33,9 @@
 
 extra-source-files:
 
-flag splitBase
-    description:    Choose the new smaller, split-up base package.
-
 library
-    if flag(splitBase)
-      build-depends:    base >= 3 && < 5
-    else
-      build-depends:    base < 3
 
-    Build-Depends:      hmatrix >= 0.13, containers, random
+    Build-Depends:      base<5, hmatrix>=0.16, containers, random
 
     hs-source-dirs:     lib
     Exposed-modules:    Numeric.LinearAlgebra.Array.Util
diff --git a/lib/Numeric/LinearAlgebra/Array.hs b/lib/Numeric/LinearAlgebra/Array.hs
--- a/lib/Numeric/LinearAlgebra/Array.hs
+++ b/lib/Numeric/LinearAlgebra/Array.hs
@@ -3,11 +3,9 @@
 -- |
 -- Module      :  Numeric.LinearAlgebra.Array
 -- Copyright   :  (c) Alberto Ruiz 2009
--- License     :  GPL
---
--- Maintainer  :  Alberto Ruiz <aruiz@um.es>
+-- License     :  BSD3
+-- Maintainer  :  Alberto Ruiz
 -- Stability   :  provisional
--- Portability :  portable
 --
 -- Simple multidimensional array with useful numeric instances.
 --
diff --git a/lib/Numeric/LinearAlgebra/Array/Decomposition.hs b/lib/Numeric/LinearAlgebra/Array/Decomposition.hs
--- a/lib/Numeric/LinearAlgebra/Array/Decomposition.hs
+++ b/lib/Numeric/LinearAlgebra/Array/Decomposition.hs
@@ -3,10 +3,9 @@
 -- |
 -- Module      :  Data.Packed.Array.Decomposition
 -- Copyright   :  (c) Alberto Ruiz 2009
--- License     :  GPL
---
--- Maintainer  :  Alberto Ruiz <aruiz@um.es>
--- Stability   :  provisional
+-- License     :  BSD3
+-- Maintainer  :  Alberto Ruiz
+-- Stability   :  experimental
 --
 -- Common multidimensional array decompositions. See the paper by Kolda & Balder.
 --
diff --git a/lib/Numeric/LinearAlgebra/Array/Display.hs b/lib/Numeric/LinearAlgebra/Array/Display.hs
--- a/lib/Numeric/LinearAlgebra/Array/Display.hs
+++ b/lib/Numeric/LinearAlgebra/Array/Display.hs
@@ -2,11 +2,9 @@
 -- |
 -- Module      :  Data.Packed.Array.Display
 -- Copyright   :  (c) Alberto Ruiz 2009
--- License     :  GPL
---
--- Maintainer  :  Alberto Ruiz <aruiz@um.es>
+-- License     :  BSD3
+-- Maintainer  :  Alberto Ruiz
 -- Stability   :  provisional
--- Portability :  portable
 --
 -- Formatting utilities
 
diff --git a/lib/Numeric/LinearAlgebra/Array/Internal.hs b/lib/Numeric/LinearAlgebra/Array/Internal.hs
--- a/lib/Numeric/LinearAlgebra/Array/Internal.hs
+++ b/lib/Numeric/LinearAlgebra/Array/Internal.hs
@@ -4,11 +4,9 @@
 -- |
 -- Module      :  Data.Packed.Array.Internal
 -- Copyright   :  (c) Alberto Ruiz 2009
--- License     :  GPL
---
--- Maintainer  :  Alberto Ruiz <aruiz@um.es>
+-- License     :  BSD3
+-- Maintainer  :  Alberto Ruiz
 -- Stability   :  provisional
--- Portability :  portable
 --
 -- Multidimensional arrays.
 --
@@ -254,7 +252,7 @@
           f t = A {dims=ds, coords=t}
 
 tridx [] t = t
-tridx (name:rest) t = A (d:ds) (join ts) where
+tridx (name:rest) t = A (d:ds) (vjoin ts) where
     d = case lastIdx name t of
             ((_,d':_),_) -> d'
             _ -> error "wrong index sequence to reorder"
@@ -341,7 +339,7 @@
 newIndex i name ts = r where
     ds = Idx i (length ts) name : (dims (head cts))
     cts = makeConformant ts
-    r = mkNArray ds (join $ map coords cts)
+    r = mkNArray ds (vjoin $ map coords cts)
 
 -------------------------------------------------------
 
@@ -440,7 +438,7 @@
     allnames = map iName alldims
     pref = alldims \\ d
     n = product (map iDim pref)
-    s = A (pref++d) (join (replicate n v))
+    s = A (pref++d) (vjoin (replicate n v))
 
 -- | Obtains most general structure of a list of dimension specifications
 conformable :: Compat i => [[Idx i]] -> Maybe [Idx i]
diff --git a/lib/Numeric/LinearAlgebra/Array/Simple.hs b/lib/Numeric/LinearAlgebra/Array/Simple.hs
--- a/lib/Numeric/LinearAlgebra/Array/Simple.hs
+++ b/lib/Numeric/LinearAlgebra/Array/Simple.hs
@@ -4,11 +4,9 @@
 -- |
 -- Module      :  Data.Packed.Array.Simple
 -- Copyright   :  (c) Alberto Ruiz 2009
--- License     :  GPL
---
--- Maintainer  :  Alberto Ruiz <aruiz@um.es>
+-- License     :  BSD3
+-- Maintainer  :  Alberto Ruiz
 -- Stability   :  provisional
--- Portability :  portable
 --
 -- Simple multidimensional arrays.
 -- Contractions only require equal dimension.
diff --git a/lib/Numeric/LinearAlgebra/Array/Solve.hs b/lib/Numeric/LinearAlgebra/Array/Solve.hs
--- a/lib/Numeric/LinearAlgebra/Array/Solve.hs
+++ b/lib/Numeric/LinearAlgebra/Array/Solve.hs
@@ -3,9 +3,8 @@
 -- |
 -- Module      :  Data.Packed.Array.Solve
 -- Copyright   :  (c) Alberto Ruiz 2009
--- License     :  GPL
---
--- Maintainer  :  Alberto Ruiz <aruiz@um.es>
+-- License     :  BSD3
+-- Maintainer  :  Alberto Ruiz
 -- Stability   :  provisional
 --
 -- Solution of general multidimensional linear and multilinear systems.
@@ -72,7 +71,7 @@
     nx = filter (`elem` (namesR a)) nx'
     na = namesR a \\ nx
     aM = g $ matrixator a na nx
-    vs = nullspaceSVD hint aM (rightSV aM)
+    vs = toColumns $ nullspaceSVD hint aM (rightSV aM)
     dx = map opos (selDims (dims a) nx)
     xs = map (mkNArray dx) vs
 
@@ -315,3 +314,4 @@
 -- coefficient matrix of a linear system.
 infoRank :: Field t => Matrix t -> Matrix t
 infoRank a = debug "" (const (rows a, cols a, rank a)) a
+
diff --git a/lib/Numeric/LinearAlgebra/Array/Util.hs b/lib/Numeric/LinearAlgebra/Array/Util.hs
--- a/lib/Numeric/LinearAlgebra/Array/Util.hs
+++ b/lib/Numeric/LinearAlgebra/Array/Util.hs
@@ -3,11 +3,9 @@
 -- |
 -- Module      :  Data.Packed.Array.Util
 -- Copyright   :  (c) Alberto Ruiz 2009
--- License     :  GPL
---
--- Maintainer  :  Alberto Ruiz <aruiz@um.es>
+-- License     :  BSD3
+-- Maintainer  :  Alberto Ruiz
 -- Stability   :  provisional
--- Portability :  portable
 --
 -- Additional tools for manipulation of multidimensional arrays.
 --
diff --git a/lib/Numeric/LinearAlgebra/Exterior.hs b/lib/Numeric/LinearAlgebra/Exterior.hs
--- a/lib/Numeric/LinearAlgebra/Exterior.hs
+++ b/lib/Numeric/LinearAlgebra/Exterior.hs
@@ -3,9 +3,8 @@
 -- |
 -- Module      :  Numeric.LinearAlgebra.Exterior
 -- Copyright   :  (c) Alberto Ruiz 2009
--- License     :  GPL
---
--- Maintainer  :  Alberto Ruiz <aruiz@um.es>
+-- License     :  BSD3
+-- Maintainer  :  Alberto Ruiz
 -- Stability   :  experimental
 --
 -- Exterior Algebra.
diff --git a/lib/Numeric/LinearAlgebra/Multivector.hs b/lib/Numeric/LinearAlgebra/Multivector.hs
--- a/lib/Numeric/LinearAlgebra/Multivector.hs
+++ b/lib/Numeric/LinearAlgebra/Multivector.hs
@@ -2,9 +2,8 @@
 -- |
 -- Module      :  Numeric.LinearAlgebra.Multivector
 -- Copyright   :  (c) Alberto Ruiz 2009
--- License     :  GPL
---
--- Maintainer  :  Alberto Ruiz <aruiz@um.es>
+-- License     :  BSD3
+-- Maintainer  :  Alberto Ruiz
 -- Stability   :  experimental
 --
 -- A simple implementation of Geometric Algebra.
diff --git a/lib/Numeric/LinearAlgebra/Tensor.hs b/lib/Numeric/LinearAlgebra/Tensor.hs
--- a/lib/Numeric/LinearAlgebra/Tensor.hs
+++ b/lib/Numeric/LinearAlgebra/Tensor.hs
@@ -3,9 +3,8 @@
 -- |
 -- Module      :  Numeric.LinearAlgebra.Tensor
 -- Copyright   :  (c) Alberto Ruiz 2009
--- License     :  GPL
---
--- Maintainer  :  Alberto Ruiz <aruiz@um.es>
+-- License     :  BSD3
+-- Maintainer  :  Alberto Ruiz
 -- Stability   :  experimental
 --
 -- Tensor computations. Indices can only be contracted if they are of different 'Variant' type.
