diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,8 +1,17 @@
+#0.3.1.1
+release, bug fixes in show and improved tests, thanks to tomas musil for catching them
 
+# 0.3.1.0
+Improved type exports and getting started docs thanks to Stephen Diehl
 
+
+#0.3.0.0
+
+the first useful release
+
 # PRE-RELEASE version 0.2.0.0
 * Support for all BLAS operations defined on General Dense matrices,
-both row and column major. 
+both row and column major.
 *  general dense linear and least squares solvers from LAPACK. Simple Drivers.
 
 # version 0.1.0.0
diff --git a/hblas.cabal b/hblas.cabal
--- a/hblas.cabal
+++ b/hblas.cabal
@@ -10,7 +10,7 @@
 -- PVP summary:      +-+------- breaking API changes
 --                   | | +----- non-breaking API additions
 --                   | | | +--- code changes with no API change
-version:             0.3.1.0
+version:             0.3.1.1
 
 -- A short (one-line) description of the package.
 synopsis:            Human friendly BLAS and Lapack bindings for Haskell.
diff --git a/readme.md b/readme.md
--- a/readme.md
+++ b/readme.md
@@ -51,11 +51,11 @@
 ```
 
 ## Linking
-If you get an error like `undefined reference to `cblas_sdsdot'` when building or running an HBLAS program,
+If you get an error like `undefined reference to 'cblas_sdsdot'` when building or running an HBLAS program,
 you might be on a system that builds BLAS and CBLAS separately, such as Arch Linux.
 
-In which case, be sure to install CBLAS, and also `cabal configure`/ `cabal install` HBLAS
-with the `-fCBLAS` flag.
+In which case, be sure to install CBLAS and invoke `cabal install hblas -fCBLAS`
+to make sure `hblas` links to CBLAS properly.
 
 ## Usage
 
diff --git a/src/Numerical/HBLAS/BLAS/Internal.hs b/src/Numerical/HBLAS/BLAS/Internal.hs
--- a/src/Numerical/HBLAS/BLAS/Internal.hs
+++ b/src/Numerical/HBLAS/BLAS/Internal.hs
@@ -135,12 +135,12 @@
                     do  (axNew,_) <- return $ coordSwapper tra (ax,ay)
                         --- dont need to swap b, info is in a and c
                         --- c doesn't get implicitly transposed
-                        blasOrder <- return $ encodeNiceOrder ornta -- all three are the same orientation
-                        rawTra <- return $  encodeFFITranspose tra
-                        rawTrb <- return $   encodeFFITranspose trb
+                        let blasOrder = encodeNiceOrder ornta -- all three are the same orientation
+                        let rawTra =  encodeFFITranspose tra
+                        let rawTrb = encodeFFITranspose trb
                                  -- example of why i want to switch to singletones
                         unsafePrimToPrim $!  (if shouldCallFast cy cx axNew then gemmUnsafeFFI  else gemmSafeFFI )
-                            blasOrder rawTra rawTrb (fromIntegral cy) (fromIntegral cx) (fromIntegral ax)
+                            blasOrder rawTra rawTrb (fromIntegral cy) (fromIntegral cx) (fromIntegral axNew)
                                 alphaPtr ap  (fromIntegral astride) bp (fromIntegral bstride) betaPtr  cp (fromIntegral cstride)
 
 
diff --git a/src/Numerical/HBLAS/MatrixTypes.hs b/src/Numerical/HBLAS/MatrixTypes.hs
--- a/src/Numerical/HBLAS/MatrixTypes.hs
+++ b/src/Numerical/HBLAS/MatrixTypes.hs
@@ -199,7 +199,7 @@
 
 instance (Show el,SM.Storable el )=> Show (DenseMatrix Column el) where
     show mat@(DenseMatrix SColumn xdim ydim stride buffer)
-             |  stride == xdim = "DenseMatrix SColumn " ++ " " ++show xdim ++ " " ++ show ydim ++ " " ++ show stride ++ "(" ++ show buffer ++ ")"
+             |  stride == ydim = "DenseMatrix SColumn " ++ " " ++show xdim ++ " " ++ show ydim ++ " " ++ show stride ++ "(" ++ show buffer ++ ")"
              | otherwise = show $ mapDenseMatrix id mat
 
 -- | 'MDenseMatrix'
diff --git a/tests/MainUnit.hs b/tests/MainUnit.hs
--- a/tests/MainUnit.hs
+++ b/tests/MainUnit.hs
@@ -5,6 +5,8 @@
 import   UnitBLAS.Level2
 import   UnitBLAS.Level3
 
+import   UnitMatrixTypes.DenseMatrix
+
 import Test.Tasty
 --import Test.Tasty.SmallCheck as SC
 --import Test.Tasty.QuickCheck as QC
@@ -16,8 +18,12 @@
 main = defaultMain tests
 
 tests :: TestTree
-tests = testGroup "BLAS Unit Tests"    [unitTestLevel1BLAS, unitTestLevel2BLAS, unitTestLevel3BLAS] -- [unitTestShape] -- , unitTestLayout ]
+tests = testGroup "All tests" [blasTests, matrixTypesTest]
 
+blasTests :: TestTree
+blasTests = testGroup "BLAS Unit Tests"    [unitTestLevel1BLAS, unitTestLevel2BLAS, unitTestLevel3BLAS] -- [unitTestShape] -- , unitTestLayout ]
+
+matrixTypesTest = testGroup "Matrix types tests" [unitTestDenseMatrix]
 
 --unitTests = testGroup "Unit tests"
 --  [ testCase "List comparison (different length)" $
