diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,3 @@
+- 0.1.1.2.1.4
+
+   - Documentation and example improvements
diff --git a/example/Main.hs b/example/Main.hs
--- a/example/Main.hs
+++ b/example/Main.hs
@@ -67,9 +67,9 @@
 type SwaggerSchemaEndpoint = "swagger.js" :> Get '[JSON] Swagger
 
 data API
-type API' = BasicAPI
-    :<|> SwaggerSchemaEndpoint
+type API' = SwaggerSchemaEndpoint
     :<|> SwaggerUI "ui" SwaggerSchemaEndpoint API
+    :<|> BasicAPI
 
 instance HasServer API
 #if MIN_VERSION_servant(0,5,0)
@@ -83,10 +83,9 @@
 
 -- Implementation
 server :: Server API
-server =
-    (return "Hello World" :<|> catEndpoint :<|> catEndpoint :<|> catEndpoint)
-    :<|> return swaggerDoc
+server = return swaggerDoc
     :<|> swaggerUIServer
+    :<|> (return "Hello World" :<|> catEndpoint :<|> catEndpoint :<|> catEndpoint)
   where
     catEndpoint n = return $ Cat n False
 
diff --git a/servant-swagger-ui.cabal b/servant-swagger-ui.cabal
--- a/servant-swagger-ui.cabal
+++ b/servant-swagger-ui.cabal
@@ -3,7 +3,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           servant-swagger-ui
-version:        0.1.0.2.1.4
+version:        0.1.1.2.1.4
 synopsis:       Servant swagger ui
 description:    Provide embedded swagger UI for servant and swagger (i.e. servant-swagger)
 category:       Web
@@ -18,6 +18,7 @@
 cabal-version:  >= 1.10
 
 extra-source-files:
+    CHANGELOG.md
     index.html.tmpl
     README.md
     swagger-dist-2.1.4/css/print.css
@@ -81,9 +82,9 @@
     , file-embed        >=0.0.9    && <0.1
     , filepath          >=1.3.0.2  && <1.5
     , http-media        >=0.6.2    && <0.8
-    , servant           >=0.4.4.5  && <0.8
-    , servant-blaze     >=0.4.4.5  && <0.8
-    , servant-server    >=0.4.4.5  && <0.8
+    , servant           >=0.4.4.5  && <0.9
+    , servant-blaze     >=0.4.4.5  && <0.9
+    , servant-server    >=0.4.4.5  && <0.9
     , servant-swagger   >=1.0.3    && <1.2
     , swagger2          >=2.0.1    && <2.2
     , template-haskell  >=2.9      && <2.12
@@ -108,16 +109,16 @@
     , file-embed        >=0.0.9    && <0.1
     , filepath          >=1.3.0.2  && <1.5
     , http-media        >=0.6.2    && <0.8
-    , servant           >=0.4.4.5  && <0.8
-    , servant-blaze     >=0.4.4.5  && <0.8
-    , servant-server    >=0.4.4.5  && <0.8
+    , servant           >=0.4.4.5  && <0.9
+    , servant-blaze     >=0.4.4.5  && <0.9
+    , servant-server    >=0.4.4.5  && <0.9
     , servant-swagger   >=1.0.3    && <1.2
     , swagger2          >=2.0.1    && <2.2
     , template-haskell  >=2.9      && <2.12
     , text              >=1.2.0.6  && <1.3
     , wai-app-static    >=3.0.1.1  && <3.2
     , servant-swagger-ui
-    , servant-server >=0.4.4.5  && <0.8
+    , servant-server >=0.4.4.5  && <0.9
     , aeson          >=0.8.0.2  && <0.12
     , base-compat    >=0.6.0    && <0.10
     , lens           >=4.7.0.1  && <4.15
diff --git a/src/Servant/Swagger/UI.hs b/src/Servant/Swagger/UI.hs
--- a/src/Servant/Swagger/UI.hs
+++ b/src/Servant/Swagger/UI.hs
@@ -24,42 +24,44 @@
 -- /An example:/
 --
 -- @
--- -- | Actual API
+-- -- | Actual API.
 -- type BasicAPI = Get '[PlainText, JSON] Text
 --     :\<|> "cat" :> Capture ":name" CatName :> Get '[JSON] Cat
 --
--- -- | Swagger schema endpoint
+-- -- | Swagger schema endpoint.
 -- type SwaggerSchemaEndpoint = "swagger.js" :> Get '[JSON] Swagger
 --
 -- -- | Unhabitated new data type, to be able to refer to API type from the API type.
 -- data API
 --
--- -- | Underlying API type
--- type API' = BasicAPI
---     :\<|> SwaggerSchemaEndpoint
+-- -- | Underlying API type.
+-- --
+-- -- NOTE: place BasicAPI last for it not to override SwaggerSchemaEndpoing and SwaggerUI.
+-- -- If you place BasicAPI first and it has Raw endpoint at root Swagger schema and UI won't work.
+-- type API' = SwaggerSchemaEndpoint
 --     :\<|> 'SwaggerUI' "ui" SwaggerSchemaEndpoint API
---
--- -- Unfortunately we have to write those trivial instances.
+--     :\<|> BasicAPI
 --
 -- -- Optionally we can do:
--- -- data API'= BasicAPI
--- --     :\<|> SwaggerSchemaEndpoint
 -- --
--- -- | Underlying API type
--- -- type API = API'
--- --     :\<|> SwaggerUI "ui" SwaggerSchemaEndpoint API'
+-- -- type API' = SwaggerSchemaEndpoint
+-- --     :\<|> BasicAPI
+-- --
+-- -- type API = SwaggerUI "ui" SwaggerSchemaEndpoint API'
+-- --     :\<|> API'
 --
--- instance HasServer API where
+-- -- Unfortunately we have to write these trivial instances.
+--
+-- instance HasServer API context where
 --   type ServerT API m = ServerT API' m
 --   route _ = route (Proxy :: Proxy API')
 --
 -- type instance IsElem' e API = IsElem e API'
 --
 -- server :: Server API
--- server =
---     (pure "Hello World" :\<|> catEndpoint)
---     :\<|> pure swaggerDoc
+-- server = pure swaggerDoc
 --     :\<|> 'swaggerUIServer'
+--     :\<|> (pure "Hello World" :\<|> catEndpoint)
 --   where
 --     catEndpoint name = pure $ Cat name False
 -- @
@@ -103,6 +105,7 @@
         uri = safeLink (Proxy :: Proxy api) (Proxy :: Proxy endpoint) :: URI
         url = T.pack $ "/" <> uriPath uri -- TODO: do we need more?
 
+-- | Serve Swagger UI on @/<dir>@ using @endpoint@ as Swagger spec source for @api@.
 swaggerUIServer :: Server (SwaggerUI dir endpoint api)
 swaggerUIServer = return SwaggerUiHtml :<|> return SwaggerUiHtml :<|> rest
   where rest = staticApp $ embeddedSettings swaggerUiFiles
