diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,11 @@
 # Changelog for pixela
 
-## Unreleased changes
+## 0.2.0.0
+
+### Breaking Change
+
+- `version` has been removed.
+
+## 0.1.0.0
+
+First release.
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,3 +1,7 @@
 # Pixela client for Haskell
 
 This is [Pixela](https://pixe.la/) client for Haskell.
+
+## API Reference
+
+This API reference is at [Hackage](http://hackage.haskell.org/package/pixela).
diff --git a/pixela.cabal b/pixela.cabal
--- a/pixela.cabal
+++ b/pixela.cabal
@@ -4,15 +4,15 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: bd1fc33f3adcd9cefe5837a71f3de4b922a2eb5993aa87d00ef45be247555726
+-- hash: 26e281551fa92a971d8a31928324bc9c33922b103a1cd024afef5cb04a0fb10a
 
 name:           pixela
-version:        0.1.0.0
+version:        0.2.0.0
 synopsis:       Pixela client.
-description:    Pixela (https://pixe.la/) client library.
+description:    Pixela (<https://pixe.la/>) client library.
 category:       Web
-homepage:       https://github.com/kakkun61/pixela#readme
-bug-reports:    https://github.com/kakkun61/pixela/issues
+homepage:       https://github.com/kakkun61/pixela-client-haskell/tree/master/lib
+bug-reports:    https://github.com/kakkun61/pixela-client-haskell/issues
 author:         Kazuki Okamoto
 maintainer:     kazuki.okamoto@kakkun61.com
 copyright:      Kazuki Okamoto
@@ -25,7 +25,7 @@
 
 source-repository head
   type: git
-  location: https://github.com/kakkun61/pixela
+  location: https://github.com/kakkun61/pixela-client-haskell
 
 library
   exposed-modules:
diff --git a/src/Web/Pixela.hs b/src/Web/Pixela.hs
--- a/src/Web/Pixela.hs
+++ b/src/Web/Pixela.hs
@@ -23,8 +23,6 @@
   , Quantity
   , WebhookType
   , WebhookHash
-    -- * Constants
-  , version
     -- * User functions
   , createUser
   , updateToken
@@ -52,25 +50,29 @@
   , deleteWebhook
   ) where
 
-import Control.Exception hiding (Exception)
-import qualified Control.Exception as E (Exception)
-import Control.Monad
-import Data.Aeson ((.=))
-import qualified Data.Aeson as Aeson
+import           Control.Exception          hiding (Exception)
+import qualified Control.Exception          as E (Exception)
+import           Control.Monad
+import           Data.Aeson                 ((.=))
+import qualified Data.Aeson                 as Aeson
+import qualified Data.ByteString.Char8      as BS
 import qualified Data.ByteString.Lazy.Char8 as BSL
-import qualified Data.ByteString.Char8 as BS
-import Data.Default
-import qualified Data.HashMap.Strict as HashMap
-import Data.String
-import Data.Text (Text)
-import qualified Data.Text as Text
-import Data.Typeable
-import qualified Data.Vector as Vector
-import Network.HTTP.Client
-import Network.HTTP.Client.TLS
-import Network.HTTP.Types
-import qualified Network.URI.Encode as URI
+import           Data.Default
+import qualified Data.HashMap.Strict        as HashMap
+import           Data.Maybe                 (fromMaybe)
+import           Data.String
+import           Data.Text                  (Text)
+import qualified Data.Text                  as Text
+import           Data.Typeable
+import qualified Data.Vector                as Vector
+import           Data.Version               (showVersion)
+import           Network.HTTP.Client
+import           Network.HTTP.Client.TLS
+import           Network.HTTP.Types
+import qualified Network.URI.Encode         as URI
 
+import           Paths_pixela               (version)
+
 -- | Pixela client.
 --
 -- @
@@ -84,17 +86,17 @@
 -- @
 data Client =
   Client
-    { config :: Config
+    { config       :: Config
     , _httpManager :: Manager
     }
 
 -- | Client configuration.
 data Config =
   Config
-    { endPoint :: Url
+    { endPoint            :: Url
     , httpManagerSettings :: ManagerSettings
-    , userName :: UserName
-    , token :: Token
+    , userName            :: UserName
+    , token               :: Token
     }
 
 instance Default Config where
@@ -105,7 +107,7 @@
       ""
       ""
 
-data Exception =
+newtype Exception =
   JsonException String
   deriving (Show, Eq, Typeable)
 
@@ -121,9 +123,9 @@
 -- 'fromParameter' is safe.
 fromParameter' :: (FromParameter a) => String -> a
 fromParameter' param =
-  case fromParameter param of
-    Just a -> a
-    Nothing -> error $ "pixela: error parsing \"" <> param <> "\""
+  fromMaybe
+    (error $ "pixela: error parsing \"" <> param <> "\"")
+    (fromParameter param)
 
 -- | A type class to convert a value to 'String'.
 class ToParameter a where
@@ -145,12 +147,12 @@
 data GraphType = GraphTypeInt | GraphTypeFloat deriving (Show, Read, Eq)
 
 instance FromParameter GraphType where
-  fromParameter "int" = Just GraphTypeInt
+  fromParameter "int"   = Just GraphTypeInt
   fromParameter "float" = Just GraphTypeFloat
-  fromParameter _ = Nothing
+  fromParameter _       = Nothing
 
 instance ToParameter GraphType where
-  toParameter GraphTypeInt = "int"
+  toParameter GraphTypeInt   = "int"
   toParameter GraphTypeFloat = "float"
 
 data GraphColor
@@ -164,20 +166,20 @@
 
 instance FromParameter GraphColor where
   fromParameter "shibafu" = Just Shibafu
-  fromParameter "momiji" = Just Momiji
-  fromParameter "sora" = Just Sora
-  fromParameter "ichou" = Just Ichou
-  fromParameter "ajisai" = Just Ajisai
-  fromParameter "kuro" = Just Kuro
-  fromParameter _ = Nothing
+  fromParameter "momiji"  = Just Momiji
+  fromParameter "sora"    = Just Sora
+  fromParameter "ichou"   = Just Ichou
+  fromParameter "ajisai"  = Just Ajisai
+  fromParameter "kuro"    = Just Kuro
+  fromParameter _         = Nothing
 
 instance ToParameter GraphColor where
   toParameter Shibafu = "shibafu"
-  toParameter Momiji = "momiji"
-  toParameter Sora = "sora"
-  toParameter Ichou = "ichou"
-  toParameter Ajisai = "ajisai"
-  toParameter Kuro = "kuro"
+  toParameter Momiji  = "momiji"
+  toParameter Sora    = "sora"
+  toParameter Ichou   = "ichou"
+  toParameter Ajisai  = "ajisai"
+  toParameter Kuro    = "kuro"
 
 type DateFormat = String
 
@@ -185,11 +187,11 @@
 
 instance FromParameter DisplayMode where
   fromParameter "short" = Just ShortMode
-  fromParameter "" = Just DefaultMode
-  fromParameter _ = Nothing
+  fromParameter ""      = Just DefaultMode
+  fromParameter _       = Nothing
 
 instance ToParameter DisplayMode where
-  toParameter ShortMode = "short"
+  toParameter ShortMode   = "short"
   toParameter DefaultMode = ""
 
 type Url = String
@@ -201,7 +203,7 @@
 instance FromParameter WebhookType where
   fromParameter "increment" = Just Increment
   fromParameter "decrement" = Just Decrement
-  fromParameter _ = Nothing
+  fromParameter _           = Nothing
 
 instance ToParameter WebhookType where
   toParameter Increment = "increment"
@@ -305,12 +307,12 @@
         _ ->
           Just $ Aeson.object $
             case mode of
-              ShortMode -> ["mode" .= toParameter mode]
+              ShortMode   -> ["mode" .= toParameter mode]
               DefaultMode -> []
             ++
             case maybeFormat of
               Just format -> ["date" .= format]
-              Nothing -> []
+              Nothing     -> []
     )
     manager
 
@@ -327,19 +329,19 @@
       ( Just $ Aeson.object $
           case maybeGraphName of
             Just graphName -> ["name" .= Aeson.String (Text.pack graphName)]
-            Nothing -> []
+            Nothing        -> []
           ++
           case maybeGraphUnit of
             Just graphUnit -> ["unit" .= Aeson.String (Text.pack graphUnit)]
-            Nothing -> []
+            Nothing        -> []
           ++
           case maybeGraphColor of
             Just graphColor -> ["color" .= Aeson.String (Text.pack $ toParameter graphColor)]
-            Nothing -> []
+            Nothing         -> []
           ++
           case purgeCacheUrls of
             _:_ -> ["purgeCacheURLs" .= Aeson.Array (Vector.fromList $ map (Aeson.String . Text.pack) purgeCacheUrls)]
-            [] -> []
+            []  -> []
       )
       manager
 
@@ -457,7 +459,7 @@
     Aeson.Object o ->
       case HashMap.lookup "webhookHash" o of
         Just (Aeson.String hashString) -> pure hashString
-        _ -> throw'
+        _                              -> throw'
     _ -> throw'
 
 -- | Get the webhook.
@@ -513,29 +515,25 @@
       request'
         { method = renderStdMethod method'
         , requestHeaders =
-            [("User-Agent", "Pixela Haskell Client " <> version)]
-            ++
+            ("User-Agent", "Pixela Haskell Client " <> BS.pack (showVersion version)) :
             case maybeToken of
               Just token' -> [("X-USER-TOKEN", BS.pack token')]
-              Nothing -> []
+              Nothing     -> []
         , requestBody =
             RequestBodyLBS $
               case maybeBody of
                 Just body -> Aeson.encode body
-                Nothing -> ""
+                Nothing   -> ""
         }
   response <- httpLbs request'' manager
   pure $ responseBody response
-        
+
 decodeJson :: BSL.ByteString -> IO Aeson.Value
 decodeJson responseBody' =
-  case Aeson.decode $ responseBody' of
+  case Aeson.decode responseBody' of
     Nothing -> throwIO $ JsonException "failed to parse response body as JSON"
-    Just b -> pure b
+    Just b  -> pure b
 
 (</>) :: (Semigroup p, IsString p) => p -> p -> p
 p </> q = p <> "/" <> q
 infixr 6 </>
-
-version :: (IsString a) => a
-version = "1.0.0"
