diff --git a/demo/00Index b/demo/00Index
index dd195be..9ea1d4a 100644
--- a/demo/00Index
+++ b/demo/00Index
@@ -6,7 +6,7 @@
 mosaicplot                      Visualize frequencies of alternative query terms in relation to other variables
 shiny-frequency-curves          Web application that plots frequency curves with highcharts and shiny
 writtenVsSpoken                 Compare frequencies in written vs. spoken corpora
-displayKwics                    Display query results as KWICs via html
+displayKwics                    Display query results including KWICs (also demonstrates OAuth2 browser workflow with httr)
 light-verb-construction-ca      Collocation analysis to identify light verb constructions matching the pattern "in NN setzen", with result rendered as HTML DataTable
 highcharter-example             Visualize frequencies of optionally alternative terms over time with interactive HTML and JavaScript elements using the package highcharter as wrapper for Highcharts
 recursiveCA                     Show result dataframe of recursvie collocation analysis as pretty HTML tableb y Knitr via Markdown.
@@ -15,4 +15,3 @@
 collocation_score_by_country    Plot collocation scores depending on country of publication using ggplot2.
 pluralGenderVariants            Plot frequencies of the plular gender variants of a word in the core corpus of the Council for German Orthography (OKK) over time.
 OAuthBrowserflowHttr2           Runtime OAuth2 browser flow demonstration using the httr2 package (adjective collocates of »Gendern«)
-OAuthBrowserflowHttr            Runtime OAuth2 browser flow demonstration using the httr package (query results for »Vöner« including KWICs)
diff --git a/demo/OAuthBrowserflowHttr.R b/demo/OAuthBrowserflowHttr.R
deleted file mode 100644
index 47fccd1..0000000
--- a/demo/OAuthBrowserflowHttr.R
+++ /dev/null
@@ -1,22 +0,0 @@
-library(RKorAPClient)
-library(httr)
-library(kableExtra)
-library(dplyr)
-
-query = 'V\u00F6ner' # "Portable packages must use only ASCII characters in their demos.   Use \uxxxx escapes for other characters."
-
-korap_app <-oauth_app("test-korap-client", key = "773NHGM76N7P9b6rLfmpM4", secret = NULL)
-korap_endpoint <- oauth_endpoint(NULL,
-                                 "settings/oauth/authorize",
-                                 "api/v1.0/oauth2/token",
-                                 base_url = "https://korap.ids-mannheim.de")
-token_bundle = oauth2.0_token(korap_endpoint, korap_app, scope = "search match_info", cache = FALSE)
-
-new("KorAPConnection", verbose = TRUE, accessToken = token_bundle[["credentials"]][["access_token"]]) %>%
-  corpusQuery(query, fields = c("textSigle", "pubDate", "corpusTitle", "snippet"),
-              metadataOnly = FALSE) %>%
-  fetchAll() %>%
-  slot("collectedMatches") %>%
-  dplyr::arrange(pubDate) %>%
-  kable(escape = FALSE, caption = paste0("Query hits for '", query, "' ordered by date of publication")) %>%
-  kable_styling()
diff --git a/demo/displayKwics.R b/demo/displayKwics.R
index b57aae7..4da6540 100644
--- a/demo/displayKwics.R
+++ b/demo/displayKwics.R
@@ -1,79 +1,24 @@
 library(RKorAPClient)
+library(httr)
+library(kableExtra)
+library(dplyr)
 
-displayKwics <- function(q, htmlFile = file.path(tempfile(fileext = ".html"))) {
-  cat(
-    '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-    <!DOCTYPE html>
-    <html>
-     <header>
-      <style>
-            body {
-              font-family: "Lato", sans-serif;
-              font-size: 10pt;
-            }
-            div.kwic {
-                display: table-row;
-                line-height: 180%;
-            }
-            div.kwic:nth-child(even) {background: #EEE}
-            div.kwic:nth-child(odd) {background: #FFF}
-            .sigle {
-                font-size: 90%;
-                font-family: "Courier New", monospace;
-                display: table-cell;
-                text-align: right;
-                padding-right: 1ex;
-            }
-            .context-left {
-                display: table-cell;
-                text-align: right;
-                overflow: hidden;
-                white-space: nowrap;
-            }
-            .context-right {
-                display: table-cell;
-                text-align: left;
-                white-space: nowrap;
-                overflow: hidden;
-            }
-            .match {
-                display: table-cell;
-                padding-left: 1ex;
-                padding-right: 1ex;
-                text-align: center;
-            }
-      </style>
-    </header>
-    <body>
-      <table>',
-    paste0(
-      "<div class='kwic'><span class='sigle'>",
-      q@collectedMatches$textSigle,
-      "</span> ",
-      as.character(q@collectedMatches$snippet),
-      "</div>"
-    ),
-    '      </table>
-    </body>
-</html>',
-    file = htmlFile,
-    sep = "\n"
-  )
-  viewer <- getOption("viewer")
-  viewer(htmlFile)
-}
+query = 'V\u00F6ner' # "Portable packages must use only ASCII characters in their demos."
 
-kco <- new("KorAPConnection", verbose = TRUE)
-if (is.null(kco@accessToken)) {
-  message(
-    paste0(
-      "In order to receive KWICSs also from corpora with restricted licenses, you need an access token.\n",
-      "To generate an access token, login to KorAP and navigite to KorAP's OAuth settings <",
-      kco@KorAPUrl,
-      "settings/oauth#page-top>"
-    )
-  )
-}
-q <- corpusQuery(kco, "Ameisenplage", metadataOnly = F) %>%
+korap_app <-oauth_app("test-korap-client", key = "773NHGM76N7P9b6rLfmpM4", secret = NULL)
+korap_endpoint <- oauth_endpoint(NULL,
+                                 "settings/oauth/authorize",
+                                 "api/v1.0/oauth2/token",
+                                 base_url = "https://korap.ids-mannheim.de")
+token_bundle = oauth2.0_token(korap_endpoint, korap_app, scope = "search match_info", cache = FALSE)
+
+new("KorAPConnection", verbose = TRUE, accessToken = token_bundle[["credentials"]][["access_token"]]) %>%
+  corpusQuery(query, fields = c("textSigle", "pubDate", "corpusTitle", "snippet"),
+              metadataOnly = FALSE) %>%
   fetchAll() %>%
-  displayKwics()
+  slot("collectedMatches") %>%
+  dplyr::arrange(pubDate) %>%
+  dplyr::rename("kwic" = "snippet") %>%
+  kable(escape = FALSE, caption = paste0("Query hits for '", query, "' ordered by date of publication")) %>%
+  kable_styling() %>%
+  print()
