diff --git a/bittrex.cabal b/bittrex.cabal
--- a/bittrex.cabal
+++ b/bittrex.cabal
@@ -1,5 +1,5 @@
 name:                bittrex
-version:             0.1.0.0
+version:             0.2.0.0
 synopsis:            API bindings to bittrex.com
 description:         Haskell bindings to the Bittrex exchange
 homepage:            https://github.com/dmjio/bittrex
@@ -12,6 +12,12 @@
 build-type:          Simple
 extra-source-files:  ChangeLog.md
 cabal-version:       >=1.10
+
+executable example
+  main-is: Main.hs
+  hs-source-dirs: example
+  default-language: Haskell2010
+  build-depends: base, bittrex
 
 library
   exposed-modules:     Bittrex
diff --git a/example/Main.hs b/example/Main.hs
new file mode 100644
--- /dev/null
+++ b/example/Main.hs
@@ -0,0 +1,45 @@
+module Main where
+
+import Bittrex
+import Control.Monad
+
+main :: IO ()
+main = do
+  [api,secret] <- lines <$> readFile "/Users/david/.bittrex"
+  let keys = APIKeys api secret
+
+  -- Public Usage
+  putStrLn "Markets"
+  Right ms <- getMarkets
+  forM_ ms $ \m ->
+    print (marketName m)
+
+  putStrLn "Currencies"
+  Right cs <- getCurrencies
+  mapM_ print cs
+
+  putStrLn "Ticker for BTC-DOGE market"
+  t <- getTicker BTC_DOGE
+  print t
+
+  putStrLn "Summary of BTC-DOGE market"
+  Right t <- getMarketSummary BTC_DOGE
+  print t
+
+  putStrLn "Order book for BTC-DOGE market"
+  book <- getOrderBook BTC_DOGE Both
+  print book
+
+  putStrLn "Market history for BTC-DOGE"
+  Right history <- getMarketHistory BTC_DOGE
+  forM_ history print
+
+  -- Market usage
+  putStrLn "Retrieve your open orders"
+  Right openOrders <- getOpenOrders keys BTC_DOGE
+  forM_ openOrders print
+
+  -- Account usage,
+  putStrLn "Check your balances (for all currencies)"
+  Right balances <- getBalances keys
+  forM_ balances print
diff --git a/src/Bittrex/API.hs b/src/Bittrex/API.hs
--- a/src/Bittrex/API.hs
+++ b/src/Bittrex/API.hs
@@ -32,10 +32,11 @@
   ) where
 
 import           Data.Aeson
+import           Data.Char
 import           Data.Monoid
+import           Data.Scientific
 import           Data.Text        (Text)
 import qualified Data.Text        as T
-import           Data.Scientific
 
 import           Bittrex.Types
 import           Bittrex.Util
@@ -70,7 +71,7 @@
   -> IO (Either ErrorMessage Ticker)
 getTicker market =
   callAPI defOpts {
-      qParams = [("market", show market)]
+      qParams = [("market", camelToDash $ show market)]
     , path = "getticker"
     }
 
@@ -86,7 +87,7 @@
   -> IO (Either ErrorMessage Value)
 getMarketSummary market =
   callAPI defOpts {
-      qParams = [("market", show market)]
+      qParams = pure ("market", camelToDash $ show market)
     , path = "getmarketsummary"
     }
 
@@ -94,12 +95,12 @@
 getOrderBook
   :: MarketName -- ^ a string literal for the market (ex: `BTC-LTC`)
   -> OrderBookType -- ^ buy, sell or both to identify the type of orderbook to return.
-  -> IO (Either ErrorMessage OrderBook)
+  -> IO (Either ErrorMessage [OrderBook])
 getOrderBook market orderBookType =
   callAPI defOpts {
       path = "getorderbook"
-    , qParams = [ ("market", show market)
-                , ("type", show orderBookType)
+    , qParams = [ ("market", camelToDash $ show market)
+                , ("type", map toLower $ show orderBookType)
                 ]
     }
 
@@ -110,7 +111,7 @@
 getMarketHistory market =
   callAPI defOpts {
       path = "getmarkethistory"
-    , qParams = pure ("market", show market)
+    , qParams = pure ("market", camelToDash $ show market)
     }
 
 -- | Get all orders that you currently have opened. A specific market can be requested
diff --git a/src/Bittrex/Types.hs b/src/Bittrex/Types.hs
--- a/src/Bittrex/Types.hs
+++ b/src/Bittrex/Types.hs
@@ -58,9 +58,273 @@
 instance FromJSON BittrexError
 
 data MarketName
-  = BTC_ADA
-  | BTC_LTC
-  deriving (Show)
+  = BTC_LTC
+  | BTC_DOGE
+  | BTC_VTC
+  | BTC_PPC
+  | BTC_FTC
+  | BTC_RDD
+  | BTC_NXT
+  | BTC_DASH
+  | BTC_POT
+  | BTC_BLK
+  | BTC_EMC2
+  | BTC_XMY
+  | BTC_AUR
+  | BTC_EFL
+  | BTC_GLD
+  | BTC_SLR
+  | BTC_PTC
+  | BTC_GRS
+  | BTC_NLG
+  | BTC_RBY
+  | BTC_XWC
+  | BTC_MONA
+  | BTC_THC
+  | BTC_ENRG
+  | BTC_ERC
+  | BTC_VRC
+  | BTC_CURE
+  | BTC_XMR
+  | BTC_CLOAK
+  | BTC_START
+  | BTC_KORE
+  | BTC_XDN
+  | BTC_TRUST
+  | BTC_NAV
+  | BTC_XST
+  | BTC_BTCD
+  | BTC_VIA
+  | BTC_PINK
+  | BTC_IOC
+  | BTC_CANN
+  | BTC_SYS
+  | BTC_NEOS
+  | BTC_DGB
+  | BTC_BURST
+  | BTC_EXCL
+  | BTC_SWIFT
+  | BTC_DOPE
+  | BTC_BLOCK
+  | BTC_ABY
+  | BTC_BYC
+  | BTC_XMG
+  | BTC_BLITZ
+  | BTC_BAY
+  | BTC_FAIR
+  | BTC_SPR
+  | BTC_VTR
+  | BTC_XRP
+  | BTC_GAME
+  | BTC_COVAL
+  | BTC_NXS
+  | BTC_XCP
+  | BTC_BITB
+  | BTC_GEO
+  | BTC_FLDC
+  | BTC_GRC
+  | BTC_FLO
+  | BTC_NBT
+  | BTC_MUE
+  | BTC_XEM
+  | BTC_CLAM
+  | BTC_DMD
+  | BTC_GAM
+  | BTC_SPHR
+  | BTC_OK
+  | BTC_SNRG
+  | BTC_PKB
+  | BTC_CPC
+  | BTC_AEON
+  | BTC_ETH
+  | BTC_GCR
+  | BTC_TX
+  | BTC_BCY
+  | BTC_EXP
+  | BTC_INFX
+  | BTC_OMNI
+  | BTC_AMP
+  | BTC_AGRS
+  | BTC_XLM
+  | USDT_BTC
+  | BTC_CLUB
+  | BTC_VOX
+  | BTC_EMC
+  | BTC_FCT
+  | BTC_MAID
+  | BTC_EGC
+  | BTC_SLS
+  | BTC_RADS
+  | BTC_DCR
+  | BTC_BSD
+  | BTC_XVG
+  | BTC_PIVX
+  | BTC_XVC
+  | BTC_MEME
+  | BTC_STEEM
+  | BTC_2GIVE
+  | BTC_LSK
+  | BTC_PDC
+  | BTC_BRK
+  | BTC_DGD
+  | ETH_DGD
+  | BTC_WAVES
+  | BTC_RISE
+  | BTC_LBC
+  | BTC_SBD
+  | BTC_BRX
+  | BTC_ETC
+  | ETH_ETC
+  | BTC_STRAT
+  | BTC_UNB
+  | BTC_SYNX
+  | BTC_TRIG
+  | BTC_EBST
+  | BTC_VRM
+  | BTC_SEQ
+  | BTC_REP
+  | BTC_SHIFT
+  | BTC_ARDR
+  | BTC_XZC
+  | BTC_NEO
+  | BTC_ZEC
+  | BTC_ZCL
+  | BTC_IOP
+  | BTC_GOLOS
+  | BTC_UBQ
+  | BTC_KMD
+  | BTC_GBG
+  | BTC_SIB
+  | BTC_ION
+  | BTC_LMC
+  | BTC_QWARK
+  | BTC_CRW
+  | BTC_SWT
+  | BTC_MLN
+  | BTC_ARK
+  | BTC_DYN
+  | BTC_TKS
+  | BTC_MUSIC
+  | BTC_DTB
+  | BTC_INCNT
+  | BTC_GBYTE
+  | BTC_GNT
+  | BTC_NXC
+  | BTC_EDG
+  | BTC_LGD
+  | BTC_TRST
+  | ETH_GNT
+  | ETH_REP
+  | USDT_ETH
+  | ETH_WINGS
+  | BTC_WINGS
+  | BTC_RLC
+  | BTC_GNO
+  | BTC_GUP
+  | BTC_LUN
+  | ETH_GUP
+  | ETH_RLC
+  | ETH_LUN
+  | ETH_GNO
+  | BTC_APX
+  | BTC_HMQ
+  | ETH_HMQ
+  | BTC_ANT
+  | ETH_TRST
+  | ETH_ANT
+  | BTC_SC
+  | ETH_BAT
+  | BTC_BAT
+  | BTC_ZEN
+  | BTC_1ST
+  | BTC_QRL
+  | ETH_1ST
+  | ETH_QRL
+  | BTC_CRB
+  | ETH_CRB
+  | ETH_LGD
+  | BTC_PTOY
+  | ETH_PTOY
+  | BTC_MYST
+  | ETH_MYST
+  | BTC_CFI
+  | ETH_CFI
+  | BTC_BNT
+  | ETH_BNT
+  | BTC_NMR
+  | ETH_NMR
+  | ETH_LTC
+  | ETH_XRP
+  | BTC_SNT
+  | ETH_SNT
+  | BTC_DCT
+  | BTC_XEL
+  | BTC_MCO
+  | ETH_MCO
+  | BTC_ADT
+  | ETH_ADT
+  | BTC_FUN
+  | ETH_FUN
+  | BTC_PAY
+  | ETH_PAY
+  | BTC_MTL
+  | ETH_MTL
+  | BTC_STORJ
+  | ETH_STORJ
+  | BTC_ADX
+  | ETH_ADX
+  | ETH_DASH
+  | ETH_SC
+  | ETH_ZEC
+  | USDT_ZEC
+  | USDT_LTC
+  | USDT_ETC
+  | USDT_XRP
+  | BTC_OMG
+  | ETH_OMG
+  | BTC_CVC
+  | ETH_CVC
+  | BTC_PART
+  | BTC_QTUM
+  | ETH_QTUM
+  | ETH_XMR
+  | ETH_XEM
+  | ETH_XLM
+  | ETH_NEO
+  | USDT_XMR
+  | USDT_DASH
+  | ETH_BCC
+  | USDT_BCC
+  | BTC_BCC
+  | BTC_DNT
+  | ETH_DNT
+  | USDT_NEO
+  | ETH_WAVES
+  | ETH_STRAT
+  | ETH_DGB
+  | ETH_FCT
+  | USDT_OMG
+  | BTC_ADA
+  | BTC_MANA
+  | ETH_MANA
+  | BTC_SALT
+  | ETH_SALT
+  | BTC_TIX
+  | ETH_TIX
+  | BTC_RCN
+  | ETH_RCN
+  | BTC_VIB
+  | ETH_VIB
+  | BTC_MER
+  | BTC_POWR
+  | ETH_POWR
+  | BTC_BTG
+  | ETH_BTG
+  | USDT_BTG
+  | ETH_ADA
+  | BTC_ENG
+  | ETH_ENG
+  deriving (Show, Eq, Generic)
 
 data Ticker = Ticker
   { bid :: Double
@@ -146,11 +410,6 @@
   parseJSON = withObject "OrderBookEntry" $ \o ->
     OrderBookEntry <$> o .: "Quantity"
                    <*> o .: "Rate"
-
-k :: ByteString
-k = "{\"buy\":[{\"Quantity\":12.37000000,\"Rate\":0.02525000}],\"sell\":[{\"Quantity\":32.55412402,\"Rate\":0.02540000}]}"
-
-Right m = eitherDecode (L.fromStrict k) :: Either String OrderBook
 
 data MarketHistory
   = MarketHistory
