diff --git a/music-pitch.cabal b/music-pitch.cabal
--- a/music-pitch.cabal
+++ b/music-pitch.cabal
@@ -1,7 +1,7 @@
 
 name:               music-pitch
-version:            1.3
-cabal-version:      >= 1.2
+version:            1.3.1
+cabal-version:      >= 1.10
 author:             Hans Hoglund
 maintainer:         Hans Hoglund
 license:            BSD3
@@ -14,8 +14,12 @@
 description: 
     Abstract representation of musical pitch.
     
-    This library is part of the Music Suite        , see <http://musicsuite.github.com>.
+    This library is part of the Music Suite, see <http://musicsuite.github.com>.
 
+source-repository head
+  type:             git
+  location:         git://github.com/hanshoglund/music-pitch.git
+  
 library                    
     build-depends: 
         base >= 4 && < 5,
@@ -28,6 +32,7 @@
         vector-space
 
     hs-source-dirs: src
+    default-language: Haskell2010
     exposed-modules:
         Music.Pitch
         Music.Pitch.Absolute
diff --git a/src/Music/Pitch/Relative/Interval.hs b/src/Music/Pitch/Relative/Interval.hs
--- a/src/Music/Pitch/Relative/Interval.hs
+++ b/src/Music/Pitch/Relative/Interval.hs
@@ -87,8 +87,8 @@
 -- The scalar type of intervals are 'Integer', using '^*' to stack intervals
 -- of a certain type on top of each other. For example @_P5 ^* 2@ is a stack
 -- of 2 perfect fifths. The 'Num' instance works as expected for '+', 'negate'
--- and 'abs', and arbitrarily uses octaves for multiplication. If you find
--- yourself '*', or 'signum' on intervals, consider switching to '^*' or
+-- and 'abs', and arbitrarily uses minor seconds for multiplication. If you
+-- find yourself '*', or 'signum' on intervals, consider switching to '*^' or
 -- 'normalized'.
 --
 -- Intervals are generally described in terms of 'Quality' and 'Number'. To
@@ -111,10 +111,10 @@
     (+)           = addInterval
     negate        = negateInterval
     abs a         = if isNegative a then negate a else a
-    a * b         = fromIntegral (semitones a `div` 12) `stackInterval` b
-    signum a      = if isNegative a then (-_P8) else _P8
+    a * b         = fromIntegral (semitones a) `stackInterval` b
+    signum a      = if isNegative a then (-m2) else (if isPositive a then m2 else _P1)
     fromInteger 0 = _P1
-    fromInteger _ = undefined
+    fromInteger n = spell sharps (fromIntegral n :: Semitones)
 
 instance Show Interval where
     show a | isNegative a = "-" ++ show (quality a) ++ show (abs $ number a)
@@ -154,9 +154,6 @@
 instance HasSteps Interval where
     steps a = fromIntegral $ semitones a `mod` 12
 
-intervalDiff :: Interval -> Int
-intervalDiff (Interval (o, d, c)) = c - diatonicToChromatic d
-
 -- |
 -- Creates an interval from a quality and number.
 --
@@ -201,8 +198,8 @@
 invertChromatic c = 12 - c
 
 negateInterval :: Interval -> Interval
-negateInterval (Interval (o, 0, 0))   = Interval (negate o, 0, 0)
-negateInterval (Interval (oa, da,ca)) = Interval (negate (oa + 1), invertDiatonic da, invertChromatic ca)
+negateInterval (Interval (o, 0, 0))    = Interval (negate o, 0, 0)
+negateInterval (Interval (oa, da, ca)) = Interval (negate (oa + 1), invertDiatonic da, invertChromatic ca)
 
 addInterval :: Interval -> Interval -> Interval
 addInterval (Interval (oa, da,ca)) (Interval (ob, db,cb))
@@ -215,6 +212,9 @@
 stackInterval :: Integer -> Interval -> Interval
 stackInterval n a | n >= 0    = mconcat $ replicate (fromIntegral n) a
                   | otherwise = negate $ stackInterval (negate n) a
+
+intervalDiff :: Interval -> Int
+intervalDiff (Interval (o, d, c)) = c - diatonicToChromatic d
 
 -- |
 -- Separate a compound interval into octaves and a simple interval.
diff --git a/src/Music/Pitch/Relative/Pitch.hs b/src/Music/Pitch/Relative/Pitch.hs
--- a/src/Music/Pitch/Relative/Pitch.hs
+++ b/src/Music/Pitch/Relative/Pitch.hs
@@ -33,6 +33,10 @@
 -- Intervals and pitches can be added using '.+^'. To get the interval between
 -- two pitches, use '.-.'.
 --
+-- Pitches are normally entered using the following literals.
+--
+-- > c d e f g a b
+--
 -- Notes with accidentals can be written by adding the @s@ or @b@ suffices
 -- (or two for double sharps and flats).
 --
@@ -83,7 +87,7 @@
     Pitch a .+^ b       = Pitch (a ^+^ b)
 
 instance Show Pitch where
-    show p = show (name p) ++ showAccidental (accidental p) ++ showOctave (octaves p)
+    show p = show (name p) ++ showAccidental (accidental p) ++ showOctave (octaves $ getPitch p)
         where
             showOctave n
                 | n > 0     = replicate' n '\''
@@ -106,7 +110,7 @@
 -- Creates a pitch from name accidental.
 --
 pitch :: Name -> Accidental -> Pitch
-pitch = undefined
+pitch name acc = Pitch $ interval' (fromIntegral acc) (fromEnum name + 1)
 
 -- |
 -- Returns the name of a pitch.
@@ -124,14 +128,14 @@
 accidental :: Pitch -> Accidental
 accidental = fromIntegral . intervalDiff . simple . getPitch
 
-instance HasOctaves Pitch where
-    octaves = octaves . getPitch
-
-instance HasSemitones Pitch where
-    semitones = semitones . getPitch
-
-instance HasSteps Pitch where
-    steps = steps . getPitch
+-- instance HasOctaves Pitch where
+--     octaves = octaves . getPitch
+-- 
+-- instance HasSemitones Pitch where
+--     semitones = semitones . getPitch
+-- 
+-- instance HasSteps Pitch where
+--     steps = steps . getPitch
 
 
 instance IsPitch Pitch where
@@ -143,6 +147,6 @@
             qual Nothing  = 0
             qual (Just n) = round n
 
-midiNumber :: Pitch -> Integer
-midiNumber = fromIntegral . semitones . getPitch
+-- midiNumber :: Pitch -> Integer
+-- midiNumber = fromIntegral . semitones . getPitch
 
