diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,9 @@
+0.4.1
+---
+
+- Game improvements (see [#99](https://github.com/fizruk/telegram-bot-simple/pull/99) );
+- Aeson >= 2.0 support (see [#100](https://github.com/fizruk/telegram-bot-simple/pull/100) );
+
 0.4
 ---
 
diff --git a/examples/GameBot.hs b/examples/GameBot.hs
--- a/examples/GameBot.hs
+++ b/examples/GameBot.hs
@@ -558,6 +558,14 @@
   H.div ! A.class_ "qbox pad" $ do
     H.button ! A.class_ "qel text button" ! A.type_ "submit"  ! A.value "submit" $ toMarkup txt
 
+renderLink :: ServerSettings -> Text -> Html
+renderLink settings txt = do
+  H.a ! A.href (toValue $ makeAbsoluteGameUrl settings) $ do 
+    H.div ! A.class_ "qbox pad" $ do
+      H.div ! A.class_ "qel button" $ do
+        H.div ! A.class_ "text" 
+          $ toMarkup txt
+
 renderAnswer :: Bool -> Int -> Text -> Html
 renderAnswer ch num txt =
   H.div ! A.class_ "qbox pad" $ do
@@ -582,8 +590,7 @@
 renderStartPage settings = withGameTemplate settings $ do
   renderText "Haskell Quiz Game"
   renderText (quizDescription settings)
-  H.form ! A.action (toValue $ makeAbsoluteGameUrl settings) ! A.method "get" $ do
-    renderButton "Play"
+  renderLink settings "Play"
 
 renderQuestionPage :: ServerSettings -> UserData -> Html
 renderQuestionPage settings UserData{..} = withGameTemplate settings $ do
@@ -591,8 +598,7 @@
   case userDataCurrentQuestion of
     Nothing -> do
       renderText "No more questions left."
-      H.form ! A.action "/game" ! A.method "get" $ do
-        renderButton "Play again"
+      renderLink settings "Play again"
 
     Just QuestionBool{..} -> do
       renderText questionBoolText
@@ -618,8 +624,7 @@
   case userDataAnswers of
     [] -> do
       renderText "Sorry. Looks like no answers available at the moment. Try again maybe?"
-      H.form ! A.action (toValue $ makeAbsoluteGameUrl settings) ! A.method "get" $ do
-        renderButton $ "Play again"
+      renderLink settings "Play again"
     _  -> do
       let total = show userDataTotalQuestions
           current = show (length $ filter answerIsRight userDataAnswers)
@@ -632,5 +637,4 @@
           H.div $ if answerIsRight
             then renderExplanation True "OK"
             else renderExplanation False $ explainError answerQuestion
-      H.form ! A.action (toValue $ makeAbsoluteGameUrl settings) ! A.method "get" $ do
-        renderButton "Play again"
+      renderLink settings "Play again"
diff --git a/src/Telegram/Bot/API/Internal/Utils.hs b/src/Telegram/Bot/API/Internal/Utils.hs
--- a/src/Telegram/Bot/API/Internal/Utils.hs
+++ b/src/Telegram/Bot/API/Internal/Utils.hs
@@ -23,8 +23,8 @@
 import qualified Data.Aeson.KeyMap as Map
 #else
 import qualified Data.HashMap.Strict as Map
-import Servant.Multipart (MultipartData(MultipartData), Input)
 #endif
+import Servant.Multipart (MultipartData(MultipartData), Input)
 
 deriveJSON' :: Name -> Q [Dec]
 deriveJSON' name = deriveJSON (jsonOptions (nameBase name)) name
diff --git a/src/Telegram/Bot/API/Stickers.hs b/src/Telegram/Bot/API/Stickers.hs
--- a/src/Telegram/Bot/API/Stickers.hs
+++ b/src/Telegram/Bot/API/Stickers.hs
@@ -1,8 +1,7 @@
 {-# LANGUAGE DataKinds                  #-}
 {-# LANGUAGE DeriveGeneric              #-}
-
 {-# LANGUAGE OverloadedStrings          #-}
-
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE TypeApplications           #-}
 {-# LANGUAGE TypeOperators              #-}
 {-# LANGUAGE RecordWildCards            #-}
@@ -13,6 +12,9 @@
 
 import Control.Monad.IO.Class
 import Data.Aeson
+#if MIN_VERSION_aeson(2,0,0)
+import Data.Aeson.Key (fromText)
+#endif
 import Data.Aeson.Text
 import Data.Bool
 import qualified Data.Text as T
@@ -148,7 +150,11 @@
     [ "user_id" .= createNewStickerSetUserId
     , "name" .= createNewStickerSetName
     , "title" .= createNewStickerSetTitle
+#if MIN_VERSION_aeson(2,0,0)
+    , fromText (stickerLabel stickerFileLabel) .= stickerFileSticker
+#else
     , stickerLabel stickerFileLabel .= stickerFileSticker
+#endif
     , "emojis" .= createNewStickerSetEmojis
     , "contains_mask" .= createNewStickerSetContainsMasks
     , "mask_position" .= createNewStickerSetMaskPosition
@@ -208,7 +214,11 @@
   toJSON AddStickerToSetRequest{..} = object
     [ "user_id" .= addStickerToSetUserId
     , "name" .= addStickerToSetName
+#if MIN_VERSION_aeson(2,0,0)
+    , fromText (stickerLabel stickerFileLabel) .= stickerFileSticker
+#else
     , stickerLabel stickerFileLabel .= stickerFileSticker
+#endif
     , "emojis" .= addStickerToSetEmojis
     , "mask_position" .= addStickerToSetMaskPosition
     ]
diff --git a/telegram-bot-simple.cabal b/telegram-bot-simple.cabal
--- a/telegram-bot-simple.cabal
+++ b/telegram-bot-simple.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           telegram-bot-simple
-version:        0.4
+version:        0.4.1
 synopsis:       Easy to use library for building Telegram bots.
 description:    Please see the README on Github at <https://github.com/fizruk/telegram-bot-simple#readme>
 category:       Web
