diff --git a/CHANGELOG b/CHANGELOG
new file mode 100644
--- /dev/null
+++ b/CHANGELOG
@@ -0,0 +1,4 @@
+2014-05-01 Ivan Perez <ivan.perez@keera.co.uk>
+
+        * hcwiid.cabal: Version bump. Adds new maitainer, repo, extra files.
+        * API: adds set_rumble.
diff --git a/README b/README
new file mode 100644
--- /dev/null
+++ b/README
@@ -0,0 +1,16 @@
+This is a refurbished version of hcwiid. It will include most of cwiid.
+If you find something in cwiid which is not included here and you need it,
+please let me know/send a pull request.
+
+First things first: How the frag do I compile the tests in test/?
+
+You need to do two things:
+1) Compile the program with -rtsopts (enable RTS command line flags)
+2) Run the program with +RTS -V0
+   This will disable the internal ticks used for profiling, which
+   in turn will make the runtime system not use the SIGALRM signal,
+   which libluetooth uses for its own internal purposes and is necessary
+   to connect to the wiimote.
+
+   (This bit is the work of Paolo Capriotti, whose mastery of GHC
+    baffles me every time.)
diff --git a/System/CWiid.hsc b/System/CWiid.hsc
--- a/System/CWiid.hsc
+++ b/System/CWiid.hsc
@@ -1,7 +1,8 @@
 {-# LANGUAGE ForeignFunctionInterface #-}
 
 module System.CWiid
-       (cwiidOpen, cwiidSetLed, cwiidSetRptMode, cwiidGetBtnState,
+       (cwiidOpen, cwiidSetLed, cwiidSetRptMode, cwiidSetRumble,
+        cwiidGetBtnState,
         cwiidLed1, cwiidLed2, cwiidLed3, cwiidLed4, combineCwiidLedFlag,
         cwiidBtn2, cwiidBtn1, cwiidBtnB, cwiidBtnA, cwiidBtnMinus,
         cwiidBtnHome, cwiidBtnLeft, cwiidBtnRight, cwiidBtnDown, cwiidBtnUp,
@@ -136,6 +137,10 @@
 cwiidSetRptMode wm = c_cwiid_set_rpt_mode handle 2 -- set BTN
   where handle = unCWiidWiimote wm
 
+cwiidSetRumble :: CWiidWiimote -> CUChar -> IO CInt
+cwiidSetRumble wm rm = c_cwiid_set_rumble handle rm
+  where handle = unCWiidWiimote wm
+
 cwiidGetBtnState :: CWiidWiimote -> IO CWiidBtnFlag
 cwiidGetBtnState wm =
   alloca $ \wiState -> do
@@ -161,6 +166,10 @@
 
 -- int cwiid_set_rpt_mode(cwiid_wiimote_t *wiimote, uint8_t rpt_mode);
 foreign import ccall safe "cwiid_set_rpt_mode" c_cwiid_set_rpt_mode
+  :: Ptr () -> CUChar -> IO CInt
+
+-- int cwiid_set_rumble(cwiid_wiimote_t *wiimote, uint8_t rumble);
+foreign import ccall safe "cwiid_set_rumble" c_cwiid_set_rumble
   :: Ptr () -> CUChar -> IO CInt
 
 -- int cwiid_get_state(cwiid_wiimote_t *wiimote, struct cwiid_state *state);
diff --git a/hcwiid.cabal b/hcwiid.cabal
--- a/hcwiid.cabal
+++ b/hcwiid.cabal
@@ -1,7 +1,7 @@
 Name:                   hcwiid
-Version:                0.0.1
+Version:                0.0.2
 Author:                 Kiwamu Okabe <kiwamu@debian.or.jp>
-Maintainer:             Kiwamu Okabe <kiwamu@debian.or.jp>
+Maintainer:             Ivan Perez <ivan.perez@keera.co.uk>
 License:                GPL-2
 License-File:           COPYING
 Synopsis:               Library to interface with the wiimote
@@ -16,6 +16,8 @@
 Homepage:               https://gitorious.org/hcwiid
 Tested-with:            GHC == 7.0.4
 
+Extra-source-files: README CHANGELOG test/Test.hs test/Makefile
+
 Library
   GHC-Options:          -Wall
   Exposed-Modules:      System.CWiid
@@ -30,4 +32,4 @@
  
 Source-Repository head
   Type:                 git
-  Location:             git://gitorious.org/hcwiid/hcwiid.git
+  Location:             git@github.com:ivanperez-keera/hcwiid.git
diff --git a/test/Makefile b/test/Makefile
new file mode 100644
--- /dev/null
+++ b/test/Makefile
@@ -0,0 +1,14 @@
+all: Test
+
+Test: Test.hs
+	ghc --make -rtsopts -Wall Test.hs -o Test
+
+lint: Test.hs
+	hlint -c Test.hs
+
+clean:
+	rm -rf Test
+	rm -rf *.hi *.o
+	rm -rf *~
+
+.PHONY: lint clean
diff --git a/test/Test.hs b/test/Test.hs
new file mode 100644
--- /dev/null
+++ b/test/Test.hs
@@ -0,0 +1,17 @@
+module Main where
+
+import Prelude
+import Control.Monad
+import System.CWiid
+import System.Posix.Unistd
+
+main :: IO ()
+main = do
+  putStrLn "Put Wiimote in discoverable mode now (press 1+2)..."
+  (Just wm) <- cwiidOpen
+  putStrLn "found!"
+  _ <- cwiidSetLed wm
+  _ <- cwiidSetRptMode wm
+  _ <- forever $ do _ <- usleep 300000
+                    cwiidGetBtnState wm >>= print
+  return () -- not reach
