diff --git a/examples/ids.Rmd b/examples/ids.Rmd
index 9fca102..3042052 100644
--- a/examples/ids.Rmd
+++ b/examples/ids.Rmd
@@ -29,7 +29,8 @@
 library(RKorAPClient)
 library(highcharter)
 library(tidyverse)
-source("https://gitlab.ids-mannheim.de/ICC/2023-07-20-ICC-ICLC10/-/raw/master/R/common.R")
+library(DT)
+#source("https://gitlab.ids-mannheim.de/ICC/2023-07-20-ICC-ICLC10/-/raw/master/R/common.R")
 ```
 # Introduction
 
@@ -89,36 +90,80 @@
 ```
 
 
-## Source Code
-### Collocation Analysis
+## Adjective Collocates
+### of *Sockenpuppe* in the German Wikipedia Talk Corpus [@kupietz_wikipedia_talk_2026]
 
-```R
-  df <- collocationAnalysis(
-    icc_con("eng"),
-    "focus({[ud/l=take]} [ud/p=NOUN])",
-    leftContextSize = 0,
-    rightContextSize = 1,
-    minOccur = 2,
-    addExamples = T
-  )
+```{r ca, message=F, warning=F, escape=F}
+library(RKorAPClient)
+KorAPConnection("https://korap.ids-mannheim.de/instance/wiki", verbose=F) |>
+    collocationAnalysis(
+    "focus([spacy/u=ADJ] {[spacy/l=Sockenpuppe]})",
+    leftContextSize = 1,
+    rightContextSize = 0,
+    cacheAs = "sockenpuppe_aca.rds"
+) |>
+mutate(collocate = sprintf("[%s](%s)", collocate, webUIRequestUrl),
+       across(where(is.numeric), ~ round(.x, 2))) |>
+select(collocate, logDice, pmi, ll) |>
+head(8) 
 ```
-See [@kupietz_rkorapclient_2020]
-See [@kupietz-deliko2026]
 
-## Source Code
-### Print Collocation Analysis as DataTable
+
+## Complete Source Code
+### of the previous slide's collocation analysis
 
 ```R
-df %>%
- mutate(Collocate=sprintf('<a href="%s">%s</a>', webUIRequestUrl, collocate)) %>%
- mutate(example=str_replace(example, 
-  ".*(\\W+\\w+\\W+\\w+\\W+<mark.*/mark>.*)", "\\1")) %>%
- mutate(example=str_replace(example, 
-  "(.*<mark.*/mark>\\W+\\w+\\W+\\w+).*", "\\1")) %>%
- rowwise() %>%
- select(Collocate, Example, logDice, pmi, ll) %>%
- datatable(escape = F) %>%
- formatRound(columns=~logDice + pmi + ll, digits=2)
+library(RKorAPClient)
+KorAPConnection("https://korap.ids-mannheim.de/instance/wiki", verbose=F) |>
+    collocationAnalysis(
+    "focus([spacy/u=ADJ] {[spacy/l=Sockenpuppe]})",
+    leftContextSize = 1,
+    rightContextSize = 0,
+    cacheAs = "sockenpuppe_aca.rds"
+) |>
+mutate(collocate = sprintf("[%s](%s)", collocate, webUIRequestUrl),
+       across(where(is.numeric), ~ round(.x, 2))) |>
+select(collocate, logDice, pmi, ll) |>
+head(8)
+```
+<small>Using RKorAPClient [@kupietz_rkorapclient_2020;@kupietz_building_2022]</small>
+
+## Adjective Collocates
+### of *Sockenpuppe* using DataTable for displaying
+
+```{r cadt, message=F, warning=F, escape=F}
+library(RKorAPClient)
+KorAPConnection("https://korap.ids-mannheim.de/instance/wiki", verbose=F) |>
+    collocationAnalysis(
+    "focus([spacy/u=ADJ] {[spacy/l=Sockenpuppe]})",
+    leftContextSize = 1,
+    rightContextSize = 0,
+    cacheAs = "sockenpuppe_aca.rds"
+) |>
+head(8)  |>
+mutate(Collocate=sprintf('<a href="%s">%s</a>', webUIRequestUrl, collocate)) |>
+select(Collocate, logDice, pmi, ll) |>
+datatable(escape=F) |> 
+formatRound(columns=~logDice + pmi + ll, digits=2)
+```
+ 
+## Source Code
+### Display Collocation Analysis Result as DataTable
+
+```R
+library(RKorAPClient)
+KorAPConnection("https://korap.ids-mannheim.de/instance/wiki", verbose=F) |>
+    collocationAnalysis(
+    "focus([spacy/u=ADJ] {[spacy/l=Sockenpuppe]})",
+    leftContextSize = 1,
+    rightContextSize = 0,
+    cacheAs = "sockenpuppe_aca.rds"
+) |>
+head(8)  |>
+mutate(Collocate=sprintf('<a href="%s">%s</a>', webUIRequestUrl, collocate)) |>
+select(Collocate, logDice, pmi, ll) |>
+datatable(escape=F) |> 
+formatRound(columns=~logDice + pmi + ll, digits=2)
 ```
 # References
 
diff --git a/examples/references.bib b/examples/references.bib
index 4d09137..bd7aca1 100644
--- a/examples/references.bib
+++ b/examples/references.bib
@@ -32,3 +32,29 @@
   editor = {Piperidis, Stelios and Bel, Núria and van den Heuvel, Henk and Ide, Nancy and Krek, Simon and Toral, Antonio},
   doi = {10.63317/59wsms6588ys},
 }
+
+
+@incollection{kupietz_building_2022,
+	address = {Berlin},
+	title = {Building paths to corpus data: {A} multi-level least effort and maximum return approach},
+	url = {https://doi.org/10.1515/9783110767377-007},
+	booktitle = {{CLARIN}. {The} {Infrastructure} for {Language} {Resources}.},
+	publisher = {deGruyter},
+	author = {Kupietz, Marc and Diewald, Nils and Margaretha, Eliza},
+	editor = {Fišer, Darja and Witt, Andreas},
+	year = {2022},
+}
+
+@inproceedings{kupietz_wikipedia_talk_2026,
+	address = {Oulu, Finland},
+	title = {The Enhanced {German} {Wikipedia} Talk Pages Corpus: New Annotations for Emojis and Gender Sensitive Language},
+	url = {https://doi.org/10.14618/0j79-7835},
+	doi = {10.14618/0j79-7835},
+	booktitle = {Proceedings of the 13th International Conference on {CMC} and Social Media Corpora for the Humanities, {CMC-Corpora} 2026, 27--28 August 2026, University of Oulu, Finland},
+	publisher = {Leibniz-Institut für Deutsche Sprache (IDS)},
+	author = {Kupietz, Marc and Diewald, Nils and Herzberg, Laura},
+	editor = {Coats, Steven},
+	year = {2026},
+	pages = {8--10},
+	isbn = {978-3-00-088236-4},
+}
