diff --git a/R/KorAPConnection.R b/R/KorAPConnection.R
index 3100cee..0dc1a74 100644
--- a/R/KorAPConnection.R
+++ b/R/KorAPConnection.R
@@ -8,7 +8,7 @@
 #' Class KorAPConnection
 #'
 #' `KorAPConnection` objects represent the connection to a KorAP server.
-#' New `KorAPConnection` objects can be created by `new("KorAPConnection")`.
+#' New `KorAPConnection` objects can be created by `KorAPConnection()`.
 #'
 #' @import R.cache
 #' @import utils
@@ -53,7 +53,7 @@
 #'   in subsequent queries, initialize your KorAP connection with:
 #'
 #'   ```
-#'   kco <- new("KorAPConnection", accessToken="<access token>")
+#'   kco <- KorAPConnection(accessToken="<access token>")
 #'   ```
 #'
 #'   In order to make the API
@@ -65,14 +65,14 @@
 #'   ```
 #'
 #'   This will store it in your keyring using the
-#'   [keyring::keyring-package]. Subsequent new("KorAPConnection") calls will
+#'   [keyring::keyring-package]. Subsequent KorAPConnection() calls will
 #'   then automatically retrieve the token from your keying. To stop using a
 #'   persisted token, call `clearAccessToken(kco)`. Please note that for
 #'   DeReKo, authorized queries will behave differently inside and outside the
 #'   IDS, because of the special license situation. This concerns also cached
 #'   results which do not take into account from where a request was issued. If
 #'   you experience problems or unexpected results, please try `kco <-
-#'   new("KorAPConnection", cache=FALSE)` or use
+#'   KorAPConnection(cache=FALSE)` or use
 #'   [clearCache()] to clear the cache completely.
 #'
 #'   An alternative to using an access token is to use a browser-based oauth2 workflow
@@ -94,14 +94,14 @@
 #' @examples
 #' \dontrun{
 #'
-#' kcon <- new("KorAPConnection", verbose = TRUE)
+#' kcon <- KorAPConnection(verbose = TRUE)
 #' kq <- corpusQuery(kcon, "Ameisenplage")
 #' kq <- fetchAll(kq)
 #' }
 #'
 #' \dontrun{
 #'
-#' kcon <- new("KorAPConnection", verbose = TRUE, accessToken="e739u6eOzkwADQPdVChxFg")
+#' kcon <- KorAPConnection(verbose = TRUE, accessToken="e739u6eOzkwADQPdVChxFg")
 #' kq <- corpusQuery(kcon, "Ameisenplage", metadataOnly=FALSE)
 #' kq <- fetchAll(kq)
 #' kq@collectedMatches$snippet
@@ -169,10 +169,10 @@
 #'
 #' @examples
 #' \dontrun{
-#' kco <- new("KorAPConnection", accessToken="e739u6eOzkwADQPdVChxFg")
+#' kco <- KorAPConnection(accessToken="e739u6eOzkwADQPdVChxFg")
 #' persistAccessToken(kco)
 #'
-#' kco <- new("KorAPConnection") %>% auth(app_id="<my application id>") %>% persistAccessToken()
+#' kco <- KorAPConnection() %>% auth(app_id="<my application id>") %>% persistAccessToken()
 #' }
 #'
 #' @seealso [clearAccessToken()], [auth()]
@@ -202,7 +202,7 @@
 #' @examples
 #'
 #' \dontrun{
-#' kco <- new("KorAPConnection")
+#' kco <- KorAPConnection()
 #' kco <- clearAccessToken(kco)
 #' }
 #'
@@ -242,7 +242,7 @@
 #' @importFrom httr2 oauth_client oauth_flow_auth_code
 #' @examples
 #' \dontrun{
-#' kco <- new("KorAPConnection", verbose = TRUE) %>% auth()
+#' kco <- KorAPConnection(verbose = TRUE) %>% auth()
 #' df <- collocationAnalysis(kco, "focus([marmot/p=ADJA] {Ameisenplage})",
 #'   leftContextSize=1, rightContextSize=0)
 #' }
@@ -467,9 +467,9 @@
 
 ##' Funtion KorAPConnection()
 ##'
-##' Wrappper function for new("KorAPConnection")
+##' Wrappper function for KorAPConnection()
 ##'
 ##' @rdname KorAPConnection-constructor
 ##' @name KorAPConnection-constructor
 ##' @export
-## XKorAPConnection <- function(...) new("KorAPConnection", ...)
+## XKorAPConnection <- function(...) KorAPConnection(...)
diff --git a/R/KorAPCorpusStats.R b/R/KorAPCorpusStats.R
index 820a248..8639a53 100644
--- a/R/KorAPCorpusStats.R
+++ b/R/KorAPCorpusStats.R
@@ -22,7 +22,7 @@
 setGeneric("corpusStats", function(kco, ...)  standardGeneric("corpusStats") )
 
 #' Fetch information about a (virtual) corpus
-#' @param kco [KorAPConnection()] object (obtained e.g. from `new("KorAPConnection")`
+#' @param kco [KorAPConnection()] object (obtained e.g. from `KorAPConnection()`
 #' @param vc string describing the virtual corpus. An empty string (default) means the whole corpus, as far as it is license-wise accessible.
 #' @param verbose logical. If `TRUE`, additional diagnostics are printed.
 #' @param as.df return result as data frame instead of as S4 object?
@@ -33,7 +33,7 @@
 #'
 #' \dontrun{
 #'
-#' kco <- new("KorAPConnection")
+#' kco <- KorAPConnection()
 #' corpusStats(kco, "pubDate in 2017 & textType=/Zeitung.*/")
 #' }
 #'
diff --git a/R/KorAPQuery.R b/R/KorAPQuery.R
index 296efa5..b79b585 100644
--- a/R/KorAPQuery.R
+++ b/R/KorAPQuery.R
@@ -83,7 +83,7 @@
 #' @importFrom purrr pmap
 #' @importFrom dplyr bind_rows
 #'
-#' @param kco [KorAPConnection()] object (obtained e.g. from `new("KorAPConnection")`
+#' @param kco [KorAPConnection()] object (obtained e.g. from `KorAPConnection()`
 #' @param query string that contains the corpus query. The query language depends on the `ql` parameter. Either `query` must be provided or `KorAPUrl`.
 #' @param vc string describing the virtual corpus in which the query should be performed. An empty string (default) means the whole corpus, as far as it is license-wise accessible.
 #' @param KorAPUrl instead of providing the query and vc string parameters, you can also simply copy a KorAP query URL from your browser and use it here (and in `KorAPConnection`) to provide all necessary information for the query.
@@ -113,7 +113,7 @@
 #' \dontrun{
 #'
 #' # Fetch metadata of every query hit for "Ameisenplage" and show a summary
-#' new("KorAPConnection") %>% corpusQuery("Ameisenplage") %>% fetchAll()
+#' KorAPConnection() %>% corpusQuery("Ameisenplage") %>% fetchAll()
 #' }
 #'
 #' \dontrun{
@@ -121,7 +121,7 @@
 #' # Use the copy of a KorAP-web-frontend URL for an API query of "Ameise" in a virtual corpus
 #' # and show the number of query hits (but don't fetch them).
 #'
-#' new("KorAPConnection", verbose = TRUE) %>%
+#' KorAPConnection(verbose = TRUE) %>%
 #'  corpusQuery(KorAPUrl =
 #'    "https://korap.ids-mannheim.de/?q=Ameise&cq=pubDate+since+2017&ql=poliqarp")
 #' }
@@ -129,7 +129,7 @@
 #' \dontrun{
 #'
 #' # Plot the time/frequency curve of "Ameisenplage"
-#' new("KorAPConnection", verbose=TRUE) %>%
+#' KorAPConnection(verbose=TRUE) %>%
 #'   { . ->> kco } %>%
 #'   corpusQuery("Ameisenplage") %>%
 #'   fetchAll() %>%
@@ -271,7 +271,7 @@
 #' @examples
 #' \dontrun{
 #'
-#' q <- new("KorAPConnection") %>% corpusQuery("Ameisenplage") %>% fetchNext()
+#' q <- KorAPConnection() %>% corpusQuery("Ameisenplage") %>% fetchNext()
 #' q@collectedMatches
 #' }
 #'
@@ -394,7 +394,7 @@
 #' @examples
 #' \dontrun{
 #'
-#' q <- new("KorAPConnection") %>% corpusQuery("Ameisenplage") %>% fetchAll()
+#' q <- KorAPConnection() %>% corpusQuery("Ameisenplage") %>% fetchAll()
 #' q@collectedMatches
 #' }
 #'
@@ -410,7 +410,7 @@
 #' @examples
 #' \dontrun{
 #'
-#' q <- new("KorAPConnection") %>% corpusQuery("Ameisenplage") %>% fetchRest()
+#' q <- KorAPConnection() %>% corpusQuery("Ameisenplage") %>% fetchRest()
 #' q@collectedMatches
 #' }
 #'
@@ -433,11 +433,11 @@
 #' @examples
 #' \dontrun{
 #'
-#' new("KorAPConnection", verbose = TRUE) %>%
+#' KorAPConnection(verbose = TRUE) %>%
 #'   frequencyQuery(c("Mücke", "Schnake"), paste0("pubDate in ", 2000:2003))
 #' }
 #'
-#' @param kco [KorAPConnection()] object (obtained e.g. from `new("KorAPConnection")`
+#' @param kco [KorAPConnection()] object (obtained e.g. from `KorAPConnection()`
 #' @param query string that contains the corpus query. The query language depends on the `ql` parameter. Either `query` must be provided or `KorAPUrl`.
 #' @param conf.level confidence level of the returned confidence interval (passed through [ci()]  to [prop.test()]).
 #' @param as.alternatives LOGICAL that specifies if the query terms should be treated as alternatives. If `as.alternatives` is TRUE, the sum over all query hits, instead of the respective vc token sizes is used as total for the calculation of relative frequencies.
diff --git a/R/association-scores.R b/R/association-scores.R
index 8c79295..741e69f 100644
--- a/R/association-scores.R
+++ b/R/association-scores.R
@@ -26,7 +26,7 @@
 #' @examples
 #' \dontrun{
 #'
-#' new("KorAPConnection", verbose = TRUE) %>%
+#' KorAPConnection(verbose = TRUE) %>%
 #' collocationScoreQuery("Perlen", c("verziertes", "Säue"),
 #'   scoreFunctions = append(defaultAssociationScoreFunctions(),
 #'      list(localMI = function(O1, O2, O, N, E, window_size) {
diff --git a/R/ci.R b/R/ci.R
index 19f8615..fcb05e8 100644
--- a/R/ci.R
+++ b/R/ci.R
@@ -25,7 +25,7 @@
 #' \dontrun{
 #'
 #' library(ggplot2)
-#' kco <- new("KorAPConnection", verbose=TRUE)
+#' kco <- KorAPConnection(verbose=TRUE)
 #' expand_grid(year=2015:2018, alternatives=c("Hate Speech", "Hatespeech")) %>%
 #'   bind_cols(corpusQuery(kco, .$alternatives, sprintf("pubDate in %d", .$year))) %>%
 #'   mutate(total=corpusStats(kco, vc=vc)$tokens) %>%
diff --git a/R/collocationAnalysis.R b/R/collocationAnalysis.R
index b844556..378fd0a 100644
--- a/R/collocationAnalysis.R
+++ b/R/collocationAnalysis.R
@@ -53,7 +53,7 @@
 #' \dontrun{
 #'
 #'  # Find top collocates of "Packung" inside and outside the sports domain.
-#'  new("KorAPConnection", verbose = TRUE) %>%
+#'  KorAPConnection(verbose = TRUE) %>%
 #'   collocationAnalysis("Packung", vc=c("textClass=sport", "textClass!=sport"),
 #'                       leftContextSize=1, rightContextSize=1, topCollocatesLimit=20) %>%
 #'   dplyr::filter(logDice >= 5)
@@ -63,7 +63,7 @@
 #'
 #' # Identify the most prominent light verb construction with "in ... setzen".
 #' # Note that, currently, the use of focus function disallows exactFrequencies.
-#' new("KorAPConnection", verbose = TRUE) %>%
+#' KorAPConnection(verbose = TRUE) %>%
 #'   collocationAnalysis("focus(in [tt/p=NN] {[tt/l=setzen]})",
 #'     leftContextSize=1, rightContextSize=0, exactFrequencies=FALSE, topCollocatesLimit=20)
 #' }
diff --git a/R/collocationScoreQuery.R b/R/collocationScoreQuery.R
index f9c56fc..6ac1a98 100644
--- a/R/collocationScoreQuery.R
+++ b/R/collocationScoreQuery.R
@@ -12,7 +12,7 @@
 #' Computes various collocation association scores
 #' based on [frequencyQuery()]s for a target word and a collocate.
 #'
-#' @param kco [KorAPConnection()] object (obtained e.g. from `new("KorAPConnection")`
+#' @param kco [KorAPConnection()] object (obtained e.g. from `KorAPConnection()`
 #' @param node               target word
 #' @param collocate          collocate of target word
 #' @param vc                 string describing the virtual corpus in which the query should be performed. An empty string (default) means the whole corpus, as far as it is license-wise accessible.
@@ -33,13 +33,13 @@
 #' @examples
 #' \dontrun{
 #'
-#' new("KorAPConnection", verbose = TRUE) %>%
+#' KorAPConnection(verbose = TRUE) %>%
 #'   collocationScoreQuery("Grund", "triftiger")
 #' }
 #'
 #' \dontrun{
 #'
-#' new("KorAPConnection", verbose = TRUE) %>%
+#' KorAPConnection(verbose = TRUE) %>%
 #' collocationScoreQuery("Grund", c("guter", "triftiger"),
 #'    scoreFunctions = list(localMI = function(O1, O2, O, N, E, window_size) { O * log2(O/E) }) )
 #' }
@@ -48,7 +48,7 @@
 #'
 #' library(highcharter)
 #' library(tidyr)
-#' new("KorAPConnection", verbose = TRUE) %>%
+#' KorAPConnection(verbose = TRUE) %>%
 #'   collocationScoreQuery("Team", "agil", vc = paste("pubDate in", c(2014:2018)),
 #'                         lemmatizeNodeQuery = TRUE, lemmatizeCollocateQuery = TRUE) %>%
 #'                          pivot_longer(14:last_col(), names_to = "measure", values_to = "score") %>%
diff --git a/R/hc_add_onclick_korap_search.R b/R/hc_add_onclick_korap_search.R
index 710c1cb..7826ec1 100644
--- a/R/hc_add_onclick_korap_search.R
+++ b/R/hc_add_onclick_korap_search.R
@@ -20,7 +20,7 @@
 #' library(highcharter)
 #' library(tidyr)
 #'
-#' new("KorAPConnection", verbose = TRUE) %>%
+#' KorAPConnection(verbose = TRUE) %>%
 #'   collocationScoreQuery("Team", "agil", vc = paste("pubDate in", c(2014:2018)),
 #'                         lemmatizeNodeQuery = TRUE, lemmatizeCollocateQuery = TRUE) %>%
 #'                          pivot_longer(c("O", "E")) %>%
diff --git a/R/hc_freq_by_year_ci.R b/R/hc_freq_by_year_ci.R
index f61b87e..a36154f 100644
--- a/R/hc_freq_by_year_ci.R
+++ b/R/hc_freq_by_year_ci.R
@@ -25,14 +25,14 @@
 #'
 #' year <- c(1990:2018)
 #' alternatives <- c("macht []{0,3} Sinn", "ergibt []{0,3} Sinn")
-#' new("KorAPConnection", verbose = TRUE) %>%
+#' KorAPConnection(verbose = TRUE) %>%
 #'   frequencyQuery(query = alternatives,
 #'                  vc = paste("textType = /Zeit.*/ & pubDate in", year),
 #'                  as.alternatives = TRUE) %>%
 #'   hc_freq_by_year_ci(as.alternatives = TRUE)
 #'
 #'
-#' kco <- new("KorAPConnection", verbose = TRUE)
+#' kco <- KorAPConnection(verbose = TRUE)
 #' expand_grid(
 #'   condition = c("textDomain = /Wirtschaft.*/", "textDomain != /Wirtschaft.*/"),
 #'   year = (2005:2011)
diff --git a/R/misc.R b/R/misc.R
index 9abbe07..ac70f47 100644
--- a/R/misc.R
+++ b/R/misc.R
@@ -23,7 +23,7 @@
 #' @examples
 #' \dontrun{
 #'
-#' new("KorAPConnection") %>% frequencyQuery("Test", paste0("pubDate in ", 2000:2002)) %>% ipm()
+#' KorAPConnection() %>% frequencyQuery("Test", paste0("pubDate in ", 2000:2002)) %>% ipm()
 #' }
 ipm <- function(df) {
   df %>%
@@ -46,7 +46,7 @@
 #' @examples
 #' \dontrun{
 #'
-#' new("KorAPConnection") %>%
+#' KorAPConnection() %>%
 #'     frequencyQuery(c("Tollpatsch", "Tolpatsch"),
 #'     vc=paste0("pubDate in ", 2000:2002),
 #'     as.alternatives = TRUE) %>%
@@ -113,7 +113,7 @@
 #' @examples
 #' \dontrun{
 #' library(ggplot2)
-#' kco <- new("KorAPConnection", verbose=TRUE)
+#' kco <- KorAPConnection(verbose=TRUE)
 #'
 #' expand_grid(condition = c("textDomain = /Wirtschaft.*/", "textDomain != /Wirtschaft.*/"),
 #'             year = (2005:2011)) %>%
diff --git a/R/textMetadata.R b/R/textMetadata.R
index 2e5372f..a6f00ce 100644
--- a/R/textMetadata.R
+++ b/R/textMetadata.R
@@ -9,7 +9,7 @@
 #' (see [Kustvakt Wiki](https://github.com/KorAP/Kustvakt/wiki/Service:-Metadata-Retrieval)).
 #'
 #'
-#' @param kco [KorAPConnection()] object (obtained e.g. from `new("KorAPConnection")`)
+#' @param kco [KorAPConnection()] object (obtained e.g. from `KorAPConnection()`)
 #' @param textSigle unique text id (concatenation of corpus, document and text ids, separated by `/`, e.g. ) or vector thereof
 #' @param verbose logical. If `TRUE`, additional diagnostics are printed. Defaults to `kco@verbose`.
 #'
@@ -23,7 +23,7 @@
 #'
 #' @examples
 #' \dontrun{
-#' new("KorAPConnection") %>% textMetadata(c("WUD17/A97/08542", "WUD17/B96/57558", "WUD17/A97/08541"))
+#' KorAPConnection() %>% textMetadata(c("WUD17/A97/08542", "WUD17/B96/57558", "WUD17/A97/08541"))
 #' }
 #'
 #' @export
diff --git a/Readme.md b/Readme.md
index 11fad81..f90764d 100644
--- a/Readme.md
+++ b/Readme.md
@@ -21,7 +21,7 @@
 
 ```R
 library(RKorAPClient)
-new("KorAPConnection", verbose=TRUE) %>% corpusQuery("Hello world") %>% fetchAll()
+KorAPConnection(verbose=TRUE) %>% corpusQuery("Hello world") %>% fetchAll()
 ```
 
 ### Frequencies over time and domains using ggplot2
@@ -29,7 +29,7 @@
 ```r
 library(RKorAPClient)
 library(ggplot2)
-kco <- new("KorAPConnection", verbose=TRUE)
+kco <- KorAPConnection(verbose=TRUE)
 expand_grid(condition = c("textDomain = /Wirtschaft.*/", "textDomain != /Wirtschaft.*/"), 
             year = (2002:2018)) %>%
     cbind(frequencyQuery(kco, "[tt/l=Heuschrecke]", paste0(.$condition," & pubDate in ", .$year)))  %>%
@@ -49,7 +49,7 @@
 years = c(1980:2010)
 as.alternatives = TRUE
 vc = "textType = /Zeit.*/ & pubDate in"
-new("KorAPConnection", verbose=T) %>%
+KorAPConnection(verbose=T) %>%
   frequencyQuery(query, paste(vc, years), as.alternatives = as.alternatives) %>%
   hc_freq_by_year_ci(as.alternatives)
 ```
@@ -62,7 +62,7 @@
 ```r
 library(RKorAPClient)
 library(knitr)
-new("KorAPConnection", verbose = TRUE) %>% auth() %>%
+KorAPConnection(verbose = TRUE) %>% auth() %>%
   collocationAnalysis(
     "focus(in [tt/p=NN] {[tt/l=setzen]})",
     leftContextSize = 1,
@@ -101,7 +101,7 @@
 Authorize your RKorAPClient application via the usual OAuth browser flow *using the default application id* and the `auth` method:
 
 ```R
-kco <- new("KorAPConnection") %>% auth()
+kco <- KorAPConnection() %>% auth()
 ```
 
 #### 2. The old way: Authorize your RKorAPClient application manually
@@ -116,7 +116,7 @@
 1. In R/RStudio, paste the token into your KorAPConnection initialization, overwriting `<access token>` in the following example:
 
    ```R
-   kco <- new("KorAPConnection", accessToken="<access token>")
+   kco <- KorAPConnection(accessToken="<access token>")
    ```
 
 The whole process is shown in this video:
@@ -131,7 +131,7 @@
 2. Click on the copy symbol ⎘ behind the ID of your client application.
 3. Paste your clipboard content overwriting `<application ID>` in the following example code:
    ```R
-   kco <- new("KorAPConnection") %>% auth(app_id = "<application ID>")
+   kco <- KorAPConnection() %>% auth(app_id = "<application ID>")
    ```
 
 #### Storing and testing your authorized access
@@ -144,8 +144,8 @@
 persistAccessToken(kco)
 ```
 
-Afterwards a simple `kco <- new("KorAPConnection")` will retrieve the stored token. 
-Piping the result through the `auth()` function `kco <- new("KorAPConnection") |> auth()` works and does nothing, in this case.
+Afterwards a simple `kco <- KorAPConnection()` will retrieve the stored token. 
+Piping the result through the `auth()` function `kco <- KorAPConnection() |> auth()` works and does nothing, in this case.
 
 To use the access token for simple corpus queries, i.e. to make `corpusQuery` return KWIC snippets, the `metadataOnly` parameter must be set to `FALSE`, for example:
 
@@ -248,7 +248,7 @@
 
 ### Accessed API Services
 
-By using RKorAPClient you agree to the respective terms of use of the accessed KorAP API services which will be printed upon opening a connection (`new("KorAPConnection", ...`).
+By using RKorAPClient you agree to the respective terms of use of the accessed KorAP API services which will be printed upon opening a connection (`KorAPConnection(...`).
 
 ## Contributions
 
diff --git a/demo/Rmd/ca.Rmd b/demo/Rmd/ca.Rmd
index a4016a5..eb9ad8c 100644
--- a/demo/Rmd/ca.Rmd
+++ b/demo/Rmd/ca.Rmd
@@ -13,7 +13,7 @@
 library(kableExtra)
 library(DT)
 library(tidyverse)
-kco <- new("KorAPConnection", verbose=T)
+kco <- KorAPConnection(verbose=T)
 if (!exists('ca')) {
 ca <- kco %>%
   collocationAnalysis(
diff --git a/demo/adjectiveCollocates.R b/demo/adjectiveCollocates.R
index 3d69eaa..346199b 100644
--- a/demo/adjectiveCollocates.R
+++ b/demo/adjectiveCollocates.R
@@ -2,7 +2,7 @@
 library(kableExtra)
 
 
-new("KorAPConnection", verbose = TRUE) %>%
+KorAPConnection(verbose = TRUE) %>%
   auth() %>%
   collocationAnalysis("focus([marmot/p=ADJA] {Gendern})", leftContextSize=1, rightContextSize=0) %>%
   mutate(collocate = paste0('<a href="', webUIRequestUrl, '">', collocate, '</a>')) %>%
diff --git a/demo/alternativesOverTime.R b/demo/alternativesOverTime.R
index 07019bd..1f70feb 100755
--- a/demo/alternativesOverTime.R
+++ b/demo/alternativesOverTime.R
@@ -5,7 +5,7 @@
 library(RKorAPClient)
 library(ggplot2)
 
-alternativesOverTime <- function(alternatives, years, kco = new("KorAPConnection", verbose=TRUE)) {
+alternativesOverTime <- function(alternatives, years, kco = KorAPConnection(verbose=TRUE)) {
   df <- expand_grid(Variant = alternatives, year = years) %>%
     cbind(frequencyQuery(kco, .$Variant, sprintf("textType = /Zeit.*/ & pubDate in %d", .$year), as.alternatives=TRUE)) %>%
     rename(share=f)
diff --git a/demo/collocation_score_by_country.R b/demo/collocation_score_by_country.R
index 9d6dc69..ccb2f51 100644
--- a/demo/collocation_score_by_country.R
+++ b/demo/collocation_score_by_country.R
@@ -9,7 +9,7 @@
 df <- expand_grid(node = NODE, collocate = COLLOCATES, country = COUNTRIES) %>%
   mutate(vc = sprintf(VC, country))
 
-g <- new("KorAPConnection", verbose=TRUE) %>%
+g <- KorAPConnection(verbose=TRUE) %>%
   collocationScoreQuery(df$node, df$collocate, df$vc, smoothingConstant = 0) %>%
   bind_cols(df %>% select(country)) %>%
   ggplot(aes(x = country, y = logDice, label = sprintf("(%d)", O), fill = collocate))  +
diff --git a/demo/conditionsOverTime.R b/demo/conditionsOverTime.R
index ccd5592..4b96e3d 100644
--- a/demo/conditionsOverTime.R
+++ b/demo/conditionsOverTime.R
@@ -7,7 +7,7 @@
 library(RKorAPClient)
 library(ggplot2)
 
-conditionsOverTime <- function(query, conditions, years, kco = new("KorAPConnection", verbose = TRUE)) {
+conditionsOverTime <- function(query, conditions, years, kco = KorAPConnection(verbose = TRUE)) {
   g <- expand_grid(condition = conditions, year = years) %>%
     cbind(frequencyQuery(kco, query, sprintf("%s & pubDate in %d", .$condition, .$year))) %>%
     ipm() %>%
diff --git a/demo/displayKwics.R b/demo/displayKwics.R
index cab5807..edb6185 100644
--- a/demo/displayKwics.R
+++ b/demo/displayKwics.R
@@ -4,7 +4,7 @@
 
 query = 'V\u00F6ner' # "Portable packages must use only ASCII characters in their demos."
 
-new("KorAPConnection", verbose = TRUE) %>%
+KorAPConnection(verbose = TRUE) %>%
   auth() %>%
   corpusQuery(query, fields = c("textSigle", "pubDate", "corpusTitle", "snippet"),
               metadataOnly = FALSE) %>%
diff --git a/demo/frequenciesOverDomains.R b/demo/frequenciesOverDomains.R
index 6607893..8da5cc8 100755
--- a/demo/frequenciesOverDomains.R
+++ b/demo/frequenciesOverDomains.R
@@ -5,7 +5,7 @@
 library(RKorAPClient)
 library(ggplot2)
 
-freqPerDomain <- function(query, con = new("KorAPConnection", verbose = TRUE)) {
+freqPerDomain <- function(query, con = KorAPConnection(verbose = TRUE)) {
   g <- corpusQuery(con, query = query, vc="") %>%
     fetchAll() %>%
     slot("collectedMatches") %>%
diff --git a/demo/frequenciesOverTime.R b/demo/frequenciesOverTime.R
index aadd0d2..3772b67 100644
--- a/demo/frequenciesOverTime.R
+++ b/demo/frequenciesOverTime.R
@@ -5,7 +5,7 @@
 library(RKorAPClient)
 library(ggplot2)
 
-freqPerYear <- function(query, kco = new("KorAPConnection", verbose = TRUE)) {
+freqPerYear <- function(query, kco = KorAPConnection(verbose = TRUE)) {
   g <- data.frame(year = 2000:2018) %>%
     cbind(frequencyQuery(kco, query, sprintf("pubDate in %d", .$year))) %>%
     { . ->> df } %>%
diff --git a/demo/frequency_by_country_ggplot.R b/demo/frequency_by_country_ggplot.R
index 514e8cf..f37b437 100644
--- a/demo/frequency_by_country_ggplot.R
+++ b/demo/frequency_by_country_ggplot.R
@@ -6,7 +6,7 @@
 
 vcs <- sprintf("textType=/Zeit.*/ & pubPlaceKey=%s", countries) # limit virtual corpus to newspapers and magazines
 
-g <- new("KorAPConnection", verbose=TRUE) %>%
+g <- KorAPConnection(verbose=TRUE) %>%
   frequencyQuery(query, vc=vcs) %>%
   ipm() %>%
   mutate(Land = countries) %>%
diff --git a/demo/frequency_by_country_highcharts.R b/demo/frequency_by_country_highcharts.R
index c04ea7d..5529e13 100644
--- a/demo/frequency_by_country_highcharts.R
+++ b/demo/frequency_by_country_highcharts.R
@@ -8,7 +8,7 @@
 VCS <- sprintf("textType=/Zeit.*/ & pubPlaceKey=%s", COUNTRIES) # limit virtual corpus to newspapers and magazines
 
 
-df <- new("KorAPConnection", verbose=TRUE) %>%
+df <- KorAPConnection(verbose=TRUE) %>%
   frequencyQuery(QUERIES, vc=VCS) %>%
   ipm() %>%
   mutate(country = rep(COUNTRIES, length(QUERIES)))
diff --git a/demo/highcharter-example.R b/demo/highcharter-example.R
index b6167f7..2661ec2 100644
--- a/demo/highcharter-example.R
+++ b/demo/highcharter-example.R
@@ -5,7 +5,7 @@
                           years = c(2000:2010),
                           as.alternatives = length(query) > 1,
                           vc = "textType = /Zeit.*/ & availability!=QAO-NC-LOC:ids & pubDate in",
-                          kco = new("KorAPConnection", verbose=TRUE) ) {
+                          kco = KorAPConnection(verbose=TRUE) ) {
   hc <-
     frequencyQuery(kco, query, paste(vc, years), as.alternatives=as.alternatives) %>%
     hc_freq_by_year_ci(as.alternatives)
diff --git a/demo/light-verb-construction-ca.R b/demo/light-verb-construction-ca.R
index fa8093f..e902f16 100644
--- a/demo/light-verb-construction-ca.R
+++ b/demo/light-verb-construction-ca.R
@@ -9,7 +9,7 @@
 
 cat(file=mdFile, sprintf("---\ntitle: LVC analysis of %s\n---\n\n", lvLemma))
 
-new("KorAPConnection", verbose = TRUE) %>%
+KorAPConnection(verbose = TRUE) %>%
   collocationAnalysis(
     sprintf("focus(in [tt/p=NN] {[tt/l=%s]})", lvLemma),
     leftContextSize = 1,
diff --git a/demo/mosaicplot.R b/demo/mosaicplot.R
index d8ea3b7..8c50351 100644
--- a/demo/mosaicplot.R
+++ b/demo/mosaicplot.R
@@ -8,7 +8,7 @@
 library(tibble)
 library(dplyr)
 
-mosaicplot <- function(query, vc, kco = new("KorAPConnection", verbose = TRUE)) {
+mosaicplot <- function(query, vc, kco = KorAPConnection(verbose = TRUE)) {
   frequencyQuery(
     query = query,
     vc = vc,
diff --git a/demo/pluralGenderVariants.R b/demo/pluralGenderVariants.R
index ef9d310..44745de 100644
--- a/demo/pluralGenderVariants.R
+++ b/demo/pluralGenderVariants.R
@@ -49,7 +49,7 @@
                           vc = "referTo ratskorpus-2023-1 & pubDate in",
                           suffixes = c('Innen', '[\\*]innen"', '[_]innen"', ' innen'),
                           prefixes = c('',      '"',            '"',        ''),
-                          kco = new("KorAPConnection", verbose=TRUE) %>% auth()) {
+                          kco = KorAPConnection(verbose=TRUE) %>% auth()) {
   hc <-
     frequencyQuery(kco, paste0(prefixes, word, suffixes), paste(vc, years), as.alternatives=as.alternatives) %>%
     unravelPunctuationGenderCases(kco = kco) %>%
diff --git a/demo/recursiveCA.R b/demo/recursiveCA.R
index ce2be8b..720b00c 100644
--- a/demo/recursiveCA.R
+++ b/demo/recursiveCA.R
@@ -6,7 +6,7 @@
 nodeWordform <- 'aufmerksam'
 mdFile <- tempfile(nodeWordform, fileext = ".md")
 
-new("KorAPConnection", verbose = TRUE) %>%
+KorAPConnection(verbose = TRUE) %>%
   collocationAnalysis(
     nodeWordform,
     leftContextSize = 2,
diff --git a/demo/regional.R b/demo/regional.R
index e0c3df8..81ddae1 100755
--- a/demo/regional.R
+++ b/demo/regional.R
@@ -39,7 +39,7 @@
 
 map <- fetchMaps(c("DEU_1", "AUT_0", "CHE_0", "LUX_0", "BEL_3", "ITA_1", "LIE_0"), c(0, 0, 0, 0, 34, 17, 0))
 
-geoDistrib <- function(query, kco = new("KorAPConnection", verbose=TRUE)) {
+geoDistrib <- function(query, kco = KorAPConnection(verbose=TRUE)) {
   regions <- readRDS("demo/data/regions.rds")
   regions$freq <- NA
   regions$url <- NA
diff --git a/demo/relativeTextpositionBoxplot.R b/demo/relativeTextpositionBoxplot.R
index 02823da..6bb71a1 100644
--- a/demo/relativeTextpositionBoxplot.R
+++ b/demo/relativeTextpositionBoxplot.R
@@ -2,7 +2,7 @@
 library(highcharter)
 library(tidyverse)
 
-kco <- new("KorAPConnection", verbose = TRUE)
+kco <- KorAPConnection(verbose = TRUE)
 
 set.seed(7)
 
diff --git a/demo/writtenVsSpoken.R b/demo/writtenVsSpoken.R
index 87b93b4..31391ff 100644
--- a/demo/writtenVsSpoken.R
+++ b/demo/writtenVsSpoken.R
@@ -2,7 +2,7 @@
 # install_github("KorAP/RKorAPClient")
 library(RKorAPClient)
 library(ggplot2)
-g <- new("KorAPConnection", verbose=TRUE) %>%
+g <- KorAPConnection(verbose=TRUE) %>%
   frequencyQuery("sozusagen/i", vc=c("corpusSigle=FOLK", "corpusSigle!=FOLK")) %>%
   ipm() %>%
   mutate(corpus=c("FOLK", "DeReKo")) %>%
diff --git a/inst/shiny-apps/frequency_curves/server.R b/inst/shiny-apps/frequency_curves/server.R
index 2094490..8cc67db 100644
--- a/inst/shiny-apps/frequency_curves/server.R
+++ b/inst/shiny-apps/frequency_curves/server.R
@@ -3,7 +3,7 @@
 } else {
   hc_theme_hcrt()
 }
-rsr <- new("KorAPConnection", verbose = TRUE, accessToken = NULL)
+rsr <- KorAPConnection(verbose = TRUE, accessToken = NULL)
 vc <- "(textType = /Zeit.*/ | textTypeRef=Plenarprotokoll) & availability!=QAO-NC-LOC:ids & creationDate in"
 years <- c(2005:2021)
 from <- 2005
diff --git a/man/KorAPConnection-class.Rd b/man/KorAPConnection-class.Rd
index a7da86f..a29ef7b 100644
--- a/man/KorAPConnection-class.Rd
+++ b/man/KorAPConnection-class.Rd
@@ -61,7 +61,7 @@
 To use authorization based on an access token
 in subsequent queries, initialize your KorAP connection with:
 
-\if{html}{\out{<div class="sourceCode">}}\preformatted{kco <- new("KorAPConnection", accessToken="<access token>")
+\if{html}{\out{<div class="sourceCode">}}\preformatted{kco <- KorAPConnection(accessToken="<access token>")
 }\if{html}{\out{</div>}}
 
 In order to make the API
@@ -72,13 +72,13 @@
 }\if{html}{\out{</div>}}
 
 This will store it in your keyring using the
-\link[keyring:keyring-package]{keyring::keyring-package}. Subsequent new("KorAPConnection") calls will
+\link[keyring:keyring-package]{keyring::keyring-package}. Subsequent KorAPConnection() calls will
 then automatically retrieve the token from your keying. To stop using a
 persisted token, call \code{clearAccessToken(kco)}. Please note that for
 DeReKo, authorized queries will behave differently inside and outside the
 IDS, because of the special license situation. This concerns also cached
 results which do not take into account from where a request was issued. If
-you experience problems or unexpected results, please try \code{kco <- new("KorAPConnection", cache=FALSE)} or use
+you experience problems or unexpected results, please try \code{kco <- KorAPConnection(cache=FALSE)} or use
 \code{\link[=clearCache]{clearCache()}} to clear the cache completely.
 
 An alternative to using an access token is to use a browser-based oauth2 workflow
@@ -116,7 +116,7 @@
 }
 \description{
 \code{KorAPConnection} objects represent the connection to a KorAP server.
-New \code{KorAPConnection} objects can be created by \code{new("KorAPConnection")}.
+New \code{KorAPConnection} objects can be created by \code{KorAPConnection()}.
 }
 \section{Slots}{
 
@@ -151,14 +151,14 @@
 \examples{
 \dontrun{
 
-kcon <- new("KorAPConnection", verbose = TRUE)
+kcon <- KorAPConnection(verbose = TRUE)
 kq <- corpusQuery(kcon, "Ameisenplage")
 kq <- fetchAll(kq)
 }
 
 \dontrun{
 
-kcon <- new("KorAPConnection", verbose = TRUE, accessToken="e739u6eOzkwADQPdVChxFg")
+kcon <- KorAPConnection(verbose = TRUE, accessToken="e739u6eOzkwADQPdVChxFg")
 kq <- corpusQuery(kcon, "Ameisenplage", metadataOnly=FALSE)
 kq <- fetchAll(kq)
 kq@collectedMatches$snippet
diff --git a/man/KorAPQuery-class.Rd b/man/KorAPQuery-class.Rd
index 1e3682d..792919e 100644
--- a/man/KorAPQuery-class.Rd
+++ b/man/KorAPQuery-class.Rd
@@ -117,7 +117,7 @@
 
 \item{collectedMatches}{matches already fetched from the KorAP-API-server}
 
-\item{kco}{\code{\link[=KorAPConnection]{KorAPConnection()}} object (obtained e.g. from \code{new("KorAPConnection")}}
+\item{kco}{\code{\link[=KorAPConnection]{KorAPConnection()}} object (obtained e.g. from \code{KorAPConnection()}}
 
 \item{query}{string that contains the corpus query. The query language depends on the \code{ql} parameter. Either \code{query} must be provided or \code{KorAPUrl}.}
 
@@ -192,7 +192,7 @@
 \dontrun{
 
 # Fetch metadata of every query hit for "Ameisenplage" and show a summary
-new("KorAPConnection") \%>\% corpusQuery("Ameisenplage") \%>\% fetchAll()
+KorAPConnection() \%>\% corpusQuery("Ameisenplage") \%>\% fetchAll()
 }
 
 \dontrun{
@@ -200,7 +200,7 @@
 # Use the copy of a KorAP-web-frontend URL for an API query of "Ameise" in a virtual corpus
 # and show the number of query hits (but don't fetch them).
 
-new("KorAPConnection", verbose = TRUE) \%>\%
+KorAPConnection(verbose = TRUE) \%>\%
  corpusQuery(KorAPUrl =
    "https://korap.ids-mannheim.de/?q=Ameise&cq=pubDate+since+2017&ql=poliqarp")
 }
@@ -208,7 +208,7 @@
 \dontrun{
 
 # Plot the time/frequency curve of "Ameisenplage"
-new("KorAPConnection", verbose=TRUE) \%>\%
+KorAPConnection(verbose=TRUE) \%>\%
   { . ->> kco } \%>\%
   corpusQuery("Ameisenplage") \%>\%
   fetchAll() \%>\%
@@ -225,25 +225,25 @@
 }
 \dontrun{
 
-q <- new("KorAPConnection") \%>\% corpusQuery("Ameisenplage") \%>\% fetchNext()
+q <- KorAPConnection() \%>\% corpusQuery("Ameisenplage") \%>\% fetchNext()
 q@collectedMatches
 }
 
 \dontrun{
 
-q <- new("KorAPConnection") \%>\% corpusQuery("Ameisenplage") \%>\% fetchAll()
+q <- KorAPConnection() \%>\% corpusQuery("Ameisenplage") \%>\% fetchAll()
 q@collectedMatches
 }
 
 \dontrun{
 
-q <- new("KorAPConnection") \%>\% corpusQuery("Ameisenplage") \%>\% fetchRest()
+q <- KorAPConnection() \%>\% corpusQuery("Ameisenplage") \%>\% fetchRest()
 q@collectedMatches
 }
 
 \dontrun{
 
-new("KorAPConnection", verbose = TRUE) \%>\%
+KorAPConnection(verbose = TRUE) \%>\%
   frequencyQuery(c("Mücke", "Schnake"), paste0("pubDate in ", 2000:2003))
 }
 
diff --git a/man/association-score-functions.Rd b/man/association-score-functions.Rd
index d8dfdad..93d3457 100644
--- a/man/association-score-functions.Rd
+++ b/man/association-score-functions.Rd
@@ -59,7 +59,7 @@
 \examples{
 \dontrun{
 
-new("KorAPConnection", verbose = TRUE) \%>\%
+KorAPConnection(verbose = TRUE) \%>\%
 collocationScoreQuery("Perlen", c("verziertes", "Säue"),
   scoreFunctions = append(defaultAssociationScoreFunctions(),
      list(localMI = function(O1, O2, O, N, E, window_size) {
diff --git a/man/auth-KorAPConnection-method.Rd b/man/auth-KorAPConnection-method.Rd
index cf06c01..bdb0993 100644
--- a/man/auth-KorAPConnection-method.Rd
+++ b/man/auth-KorAPConnection-method.Rd
@@ -31,7 +31,7 @@
 }
 \examples{
 \dontrun{
-kco <- new("KorAPConnection", verbose = TRUE) \%>\% auth()
+kco <- KorAPConnection(verbose = TRUE) \%>\% auth()
 df <- collocationAnalysis(kco, "focus([marmot/p=ADJA] {Ameisenplage})",
   leftContextSize=1, rightContextSize=0)
 }
diff --git a/man/clearAccessToken-KorAPConnection-method.Rd b/man/clearAccessToken-KorAPConnection-method.Rd
index 2dfa4b5..a6c665a 100644
--- a/man/clearAccessToken-KorAPConnection-method.Rd
+++ b/man/clearAccessToken-KorAPConnection-method.Rd
@@ -19,7 +19,7 @@
 \examples{
 
 \dontrun{
-kco <- new("KorAPConnection")
+kco <- KorAPConnection()
 kco <- clearAccessToken(kco)
 }
 
diff --git a/man/collocationAnalysis-KorAPConnection-method.Rd b/man/collocationAnalysis-KorAPConnection-method.Rd
index 57b048f..1554ff7 100644
--- a/man/collocationAnalysis-KorAPConnection-method.Rd
+++ b/man/collocationAnalysis-KorAPConnection-method.Rd
@@ -31,7 +31,7 @@
 )
 }
 \arguments{
-\item{kco}{\code{\link[=KorAPConnection]{KorAPConnection()}} object (obtained e.g. from \code{new("KorAPConnection")}}
+\item{kco}{\code{\link[=KorAPConnection]{KorAPConnection()}} object (obtained e.g. from \code{KorAPConnection()}}
 
 \item{node}{target word}
 
@@ -101,7 +101,7 @@
 \dontrun{
 
  # Find top collocates of "Packung" inside and outside the sports domain.
- new("KorAPConnection", verbose = TRUE) \%>\%
+ KorAPConnection(verbose = TRUE) \%>\%
   collocationAnalysis("Packung", vc=c("textClass=sport", "textClass!=sport"),
                       leftContextSize=1, rightContextSize=1, topCollocatesLimit=20) \%>\%
   dplyr::filter(logDice >= 5)
@@ -111,7 +111,7 @@
 
 # Identify the most prominent light verb construction with "in ... setzen".
 # Note that, currently, the use of focus function disallows exactFrequencies.
-new("KorAPConnection", verbose = TRUE) \%>\%
+KorAPConnection(verbose = TRUE) \%>\%
   collocationAnalysis("focus(in [tt/p=NN] {[tt/l=setzen]})",
     leftContextSize=1, rightContextSize=0, exactFrequencies=FALSE, topCollocatesLimit=20)
 }
diff --git a/man/collocationScoreQuery-KorAPConnection-method.Rd b/man/collocationScoreQuery-KorAPConnection-method.Rd
index 5e10b7b..b9e0e94 100644
--- a/man/collocationScoreQuery-KorAPConnection-method.Rd
+++ b/man/collocationScoreQuery-KorAPConnection-method.Rd
@@ -22,7 +22,7 @@
 )
 }
 \arguments{
-\item{kco}{\code{\link[=KorAPConnection]{KorAPConnection()}} object (obtained e.g. from \code{new("KorAPConnection")}}
+\item{kco}{\code{\link[=KorAPConnection]{KorAPConnection()}} object (obtained e.g. from \code{KorAPConnection()}}
 
 \item{node}{target word}
 
@@ -58,13 +58,13 @@
 \examples{
 \dontrun{
 
-new("KorAPConnection", verbose = TRUE) \%>\%
+KorAPConnection(verbose = TRUE) \%>\%
   collocationScoreQuery("Grund", "triftiger")
 }
 
 \dontrun{
 
-new("KorAPConnection", verbose = TRUE) \%>\%
+KorAPConnection(verbose = TRUE) \%>\%
 collocationScoreQuery("Grund", c("guter", "triftiger"),
    scoreFunctions = list(localMI = function(O1, O2, O, N, E, window_size) { O * log2(O/E) }) )
 }
@@ -73,7 +73,7 @@
 
 library(highcharter)
 library(tidyr)
-new("KorAPConnection", verbose = TRUE) \%>\%
+KorAPConnection(verbose = TRUE) \%>\%
   collocationScoreQuery("Team", "agil", vc = paste("pubDate in", c(2014:2018)),
                         lemmatizeNodeQuery = TRUE, lemmatizeCollocateQuery = TRUE) \%>\%
                          pivot_longer(14:last_col(), names_to = "measure", values_to = "score") \%>\%
diff --git a/man/corpusStats-KorAPConnection-method.Rd b/man/corpusStats-KorAPConnection-method.Rd
index 74aca03..055585b 100644
--- a/man/corpusStats-KorAPConnection-method.Rd
+++ b/man/corpusStats-KorAPConnection-method.Rd
@@ -8,7 +8,7 @@
 \S4method{corpusStats}{KorAPConnection}(kco, vc = "", verbose = kco@verbose, as.df = FALSE)
 }
 \arguments{
-\item{kco}{\code{\link[=KorAPConnection]{KorAPConnection()}} object (obtained e.g. from \code{new("KorAPConnection")}}
+\item{kco}{\code{\link[=KorAPConnection]{KorAPConnection()}} object (obtained e.g. from \code{KorAPConnection()}}
 
 \item{vc}{string describing the virtual corpus. An empty string (default) means the whole corpus, as far as it is license-wise accessible.}
 
@@ -26,7 +26,7 @@
 
 \dontrun{
 
-kco <- new("KorAPConnection")
+kco <- KorAPConnection()
 corpusStats(kco, "pubDate in 2017 & textType=/Zeitung.*/")
 }
 
diff --git a/man/hc_add_onclick_korap_search.Rd b/man/hc_add_onclick_korap_search.Rd
index 925c5f7..fcfaa1b 100644
--- a/man/hc_add_onclick_korap_search.Rd
+++ b/man/hc_add_onclick_korap_search.Rd
@@ -26,7 +26,7 @@
 library(highcharter)
 library(tidyr)
 
-new("KorAPConnection", verbose = TRUE) \%>\%
+KorAPConnection(verbose = TRUE) \%>\%
   collocationScoreQuery("Team", "agil", vc = paste("pubDate in", c(2014:2018)),
                         lemmatizeNodeQuery = TRUE, lemmatizeCollocateQuery = TRUE) \%>\%
                          pivot_longer(c("O", "E")) \%>\%
diff --git a/man/hc_freq_by_year_ci.Rd b/man/hc_freq_by_year_ci.Rd
index 2d64e43..1d155c5 100644
--- a/man/hc_freq_by_year_ci.Rd
+++ b/man/hc_freq_by_year_ci.Rd
@@ -38,14 +38,14 @@
 
 year <- c(1990:2018)
 alternatives <- c("macht []{0,3} Sinn", "ergibt []{0,3} Sinn")
-new("KorAPConnection", verbose = TRUE) \%>\%
+KorAPConnection(verbose = TRUE) \%>\%
   frequencyQuery(query = alternatives,
                  vc = paste("textType = /Zeit.*/ & pubDate in", year),
                  as.alternatives = TRUE) \%>\%
   hc_freq_by_year_ci(as.alternatives = TRUE)
 
 
-kco <- new("KorAPConnection", verbose = TRUE)
+kco <- KorAPConnection(verbose = TRUE)
 expand_grid(
   condition = c("textDomain = /Wirtschaft.*/", "textDomain != /Wirtschaft.*/"),
   year = (2005:2011)
diff --git a/man/misc-functions.Rd b/man/misc-functions.Rd
index d9433a3..4c21101 100644
--- a/man/misc-functions.Rd
+++ b/man/misc-functions.Rd
@@ -74,7 +74,7 @@
 \dontrun{
 
 library(ggplot2)
-kco <- new("KorAPConnection", verbose=TRUE)
+kco <- KorAPConnection(verbose=TRUE)
 expand_grid(year=2015:2018, alternatives=c("Hate Speech", "Hatespeech")) \%>\%
   bind_cols(corpusQuery(kco, .$alternatives, sprintf("pubDate in \%d", .$year))) \%>\%
   mutate(total=corpusStats(kco, vc=vc)$tokens) \%>\%
@@ -84,11 +84,11 @@
 }
 \dontrun{
 
-new("KorAPConnection") \%>\% frequencyQuery("Test", paste0("pubDate in ", 2000:2002)) \%>\% ipm()
+KorAPConnection() \%>\% frequencyQuery("Test", paste0("pubDate in ", 2000:2002)) \%>\% ipm()
 }
 \dontrun{
 
-new("KorAPConnection") \%>\%
+KorAPConnection() \%>\%
     frequencyQuery(c("Tollpatsch", "Tolpatsch"),
     vc=paste0("pubDate in ", 2000:2002),
     as.alternatives = TRUE) \%>\%
@@ -100,7 +100,7 @@
 
 \dontrun{
 library(ggplot2)
-kco <- new("KorAPConnection", verbose=TRUE)
+kco <- KorAPConnection(verbose=TRUE)
 
 expand_grid(condition = c("textDomain = /Wirtschaft.*/", "textDomain != /Wirtschaft.*/"),
             year = (2005:2011)) \%>\%
diff --git a/man/persistAccessToken-KorAPConnection-method.Rd b/man/persistAccessToken-KorAPConnection-method.Rd
index b66457e..094acee 100644
--- a/man/persistAccessToken-KorAPConnection-method.Rd
+++ b/man/persistAccessToken-KorAPConnection-method.Rd
@@ -20,10 +20,10 @@
 }
 \examples{
 \dontrun{
-kco <- new("KorAPConnection", accessToken="e739u6eOzkwADQPdVChxFg")
+kco <- KorAPConnection(accessToken="e739u6eOzkwADQPdVChxFg")
 persistAccessToken(kco)
 
-kco <- new("KorAPConnection") \%>\% auth(app_id="<my application id>") \%>\% persistAccessToken()
+kco <- KorAPConnection() \%>\% auth(app_id="<my application id>") \%>\% persistAccessToken()
 }
 
 }
diff --git a/man/textMetadata-KorAPConnection-method.Rd b/man/textMetadata-KorAPConnection-method.Rd
index bc1bbca..170f3e0 100644
--- a/man/textMetadata-KorAPConnection-method.Rd
+++ b/man/textMetadata-KorAPConnection-method.Rd
@@ -8,7 +8,7 @@
 \S4method{textMetadata}{KorAPConnection}(kco, textSigle, verbose = kco@verbose)
 }
 \arguments{
-\item{kco}{\code{\link[=KorAPConnection]{KorAPConnection()}} object (obtained e.g. from \code{new("KorAPConnection")})}
+\item{kco}{\code{\link[=KorAPConnection]{KorAPConnection()}} object (obtained e.g. from \code{KorAPConnection()})}
 
 \item{textSigle}{unique text id (concatenation of corpus, document and text ids, separated by \code{/}, e.g. ) or vector thereof}
 
@@ -24,7 +24,7 @@
 }
 \examples{
 \dontrun{
-new("KorAPConnection") \%>\% textMetadata(c("WUD17/A97/08542", "WUD17/B96/57558", "WUD17/A97/08541"))
+KorAPConnection() \%>\% textMetadata(c("WUD17/A97/08542", "WUD17/B96/57558", "WUD17/A97/08541"))
 }
 
 }
diff --git a/tests/testthat/test-KorAPConnection.R b/tests/testthat/test-KorAPConnection.R
index 0755b08..42e3fd6 100644
--- a/tests/testthat/test-KorAPConnection.R
+++ b/tests/testthat/test-KorAPConnection.R
@@ -1,32 +1,32 @@
 test_that("KorAPConnection fails gracefully on unresolvable host", {
-  expect_message(new("KorAPConnection", accessToken = NULL, apiUrl="http://xxx.asdhsahdsadhvgas.org"), "No internet|Could not resolve")
+  expect_message(KorAPConnection(accessToken = NULL, apiUrl="http://xxx.asdhsahdsadhvgas.org"), "No internet|Could not resolve")
 })
 
 test_that("KorAPConnection fails gracefully on timeout", {
-  expect_message(new("KorAPConnection", apiUrl="http://httpbin.org/delay/3", accessToken = NULL, timeout = 0.2), "No internet|Timeout|json|progress")
+  expect_message(KorAPConnection(apiUrl="http://httpbin.org/delay/3", accessToken = NULL, timeout = 0.2), "No internet|Timeout|json|progress")
 })
 
 test_that("KorAPConnection fails gracefully on Bad Gateway errors", {
-  expect_message(new("KorAPConnection", apiUrl="http://httpbin.org/status/502", accessToken = NULL, timeout = 0.5), "No internet|Timeout|progress|json|502")
+  expect_message(KorAPConnection(apiUrl="http://httpbin.org/status/502", accessToken = NULL, timeout = 0.5), "No internet|Timeout|progress|json|502")
 })
 
 test_that("KorAPConnection is printable", {
-  kco <- new("KorAPConnection", accessToken = NULL, timeout = 1)
+  kco <- KorAPConnection(accessToken = NULL, timeout = 1)
   skip_if(is.null(kco@welcome))
   expect_error(print(kco), NA)
 })
 
 test_that("Opening KorAPConnection prints some message.", {
-  expect_message(new("KorAPConnection", accessToken = NULL), "KorAP")
+  expect_message(KorAPConnection(accessToken = NULL), "KorAP")
 })
 
 test_that("Opening KorAPConnection with invalid apiToken fails gracefully", {
-  expect_message(new("KorAPConnection", accessToken="test token", timeout = 3),
+  expect_message(KorAPConnection(accessToken="test token", timeout = 3),
                "401|Timeout|progress")
 })
 
 test_that("Persisting null apiToken fails", {
-  kco <- new("KorAPConnection", accessToken = NULL, timeout = 3)
+  kco <- KorAPConnection(accessToken = NULL, timeout = 3)
   skip_if_not(is.null(kco@accessToken))
   skip_if(is.null(kco@welcome))
   expect_error(persistAccessToken(kco),
@@ -35,8 +35,8 @@
 })
 
 test_that("Opening KorAPConnection with KorAPUrl works", {
-  kco <- new("KorAPConnection", accessToken = NULL, KorAPUrl="https://korap.ids-mannheim.de", timeout = 1)
+  kco <- KorAPConnection(accessToken = NULL, KorAPUrl="https://korap.ids-mannheim.de", timeout = 1)
   expect_equal(kco@apiUrl, paste0("https://korap.ids-mannheim.de/api/", kco@apiVersion, "/"))
-  kco <- new("KorAPConnection", accessToken = NULL, KorAPUrl="https://korap.ids-mannheim.de/", timeout = 1)
+  kco <- KorAPConnection(accessToken = NULL, KorAPUrl="https://korap.ids-mannheim.de/", timeout = 1)
   expect_equal(kco@apiUrl, paste0("https://korap.ids-mannheim.de/api/", kco@apiVersion, "/"))
 })
diff --git a/tests/testthat/test-collocations.R b/tests/testthat/test-collocations.R
index aa4a771..d0dd761 100644
--- a/tests/testthat/test-collocations.R
+++ b/tests/testthat/test-collocations.R
@@ -1,6 +1,6 @@
 test_that("collocationScoreQuery works", {
   skip_if_offline()
-  kco <- new("KorAPConnection", accessToken = NULL, cache = TRUE, verbose = TRUE)
+  kco <- KorAPConnection(accessToken = NULL, cache = TRUE, verbose = TRUE)
   df <- collocationScoreQuery(kco, "Ameisenplage", "heimgesucht", leftContextSize=0, rightContextSize=1)
   expect_gt(df$logDice, 1)
   expect_equal(df$ll, ll(df$O1, df$O2, df$O, df$N, df$E, df$w))
@@ -13,7 +13,7 @@
 
 test_that("collocationAnalysis works and warns about missing token", {
   skip_if_offline()
-  kco <- new("KorAPConnection",
+  kco <- KorAPConnection(
                accessToken = NULL,
                verbose = TRUE)
     expect_warning(
@@ -32,7 +32,7 @@
 
 test_that("collocationAnalysis on unaccounted strings does not error out", {
   skip_if_offline()
-  kco <- new("KorAPConnection", accessToken = NULL, verbose = TRUE)
+  kco <- KorAPConnection(accessToken = NULL, verbose = TRUE)
   expect_warning(
     df <- collocationAnalysis(kco, "XXXXXXXXAmeisenplage", vc=c("corpusSigle=/WDD17/", "corpusSigle=/WUD17/"), maxRecurse = 2),
     "access token"
diff --git a/tests/testthat/test-corpusQuery.R b/tests/testthat/test-corpusQuery.R
index 223f526..e5289e0 100644
--- a/tests/testthat/test-corpusQuery.R
+++ b/tests/testthat/test-corpusQuery.R
@@ -1,13 +1,13 @@
 test_that("frequencyQuery can be cached", {
   skip_if_offline()
-  kco <- new("KorAPConnection", accessToken = NULL, cache = TRUE, verbose = TRUE)
+  kco <- KorAPConnection(accessToken = NULL, cache = TRUE, verbose = TRUE)
   frequencyQuery(kco, "Ameisenplage", "pubDate since 2014")
   expect_output(frequencyQuery(kco, "Ameisenplage", "pubDate since 2014"), "cached")
 })
 
 test_that("collocationScoreQuery works", {
   skip_if_offline()
-  kco <- new("KorAPConnection",  accessToken = NULL, cache = TRUE, verbose = TRUE)
+  kco <- KorAPConnection(accessToken = NULL, cache = TRUE, verbose = TRUE)
   df <- collocationScoreQuery(kco,"Ameisenplage", "heimgesucht", leftContextSize=0, rightContextSize=1)
   expect_gt(df$logDice, 1)
   expect_equal(df$ll, ll(df$O1, df$O2, df$O, df$N, df$E, df$w))
@@ -19,7 +19,7 @@
 
 test_that("Cache depends on indexRevision (handling also NULL values)", {
   skip_if_offline()
-  kco <- new("KorAPConnection", accessToken = NULL, cache = TRUE, verbose = TRUE)
+  kco <- KorAPConnection(accessToken = NULL, cache = TRUE, verbose = TRUE)
   kco@indexRevision <- NULL
   frequencyQuery(kco, "Ameisenplage", "pubDate since 2014")
   kco@indexRevision <- as.character(Sys.time())
@@ -29,7 +29,7 @@
 
 test_that("corpusQuery returns results", {
   skip_if_offline()
-  q <- new("KorAPConnection", accessToken = NULL) %>%
+  q <- KorAPConnection(accessToken = NULL) %>%
     corpusQuery("Ameisenplage")
   expect_gt(q@totalResults, 0)
 })
@@ -41,7 +41,7 @@
   Encoding(vc)="latin1"
 
   skip_if_offline()
-  q <- new("KorAPConnection", accessToken = NULL) %>%
+  q <- KorAPConnection(accessToken = NULL) %>%
     corpusQuery(query, vc=vc)
   expect_gt(q@totalResults, 0)
 })
@@ -53,14 +53,14 @@
   Encoding(vc)="UTF-8"
 
   skip_if_offline()
-  q <- new("KorAPConnection", accessToken = NULL) %>%
+  q <- KorAPConnection(accessToken = NULL) %>%
     corpusQuery(query, vc=vc)
   expect_gt(q@totalResults, 0)
 })
 
 test_that("fetchAll fetches all results with match positions", {
   skip_if_offline()
-  q <- new("KorAPConnection", accessToken = NULL, verbose = TRUE) %>%
+  q <- KorAPConnection(accessToken = NULL, verbose = TRUE) %>%
     corpusQuery("Ameisenplage", vc = "pubDate since 2014")
   expectedResults <- q@totalResults
   matches <- fetchAll(q)@collectedMatches
@@ -72,7 +72,7 @@
 
 test_that("fetchAll fetches textClass metadatum", {
   skip_if_offline()
-  q <- new("KorAPConnection", accessToken = NULL, verbose = TRUE) %>%
+  q <- KorAPConnection(accessToken = NULL, verbose = TRUE) %>%
     corpusQuery("Ameisenplage", vc = "pubDate since 2014")
   expectedResults <- q@totalResults
   matches <- fetchAll(q)@collectedMatches
@@ -83,13 +83,13 @@
 
 test_that("Uncached query for non-matching search string return 0 results", {
   skip_if_offline()
-  q <- new("KorAPConnection", accessToken = NULL, cache = FALSE) %>% corpusQuery("Xmeisenplagx")
+  q <- KorAPConnection(accessToken = NULL, cache = FALSE) %>% corpusQuery("Xmeisenplagx")
   expect_equal( q@totalResults, 0)
 })
 
 test_that("Empty query result is printable", {
   skip_if_offline()
-  q <- new("KorAPConnection", accessToken = NULL, cache = TRUE, verbose = TRUE) %>%
+  q <- KorAPConnection(accessToken = NULL, cache = TRUE, verbose = TRUE) %>%
     corpusQuery("Xmeisenplagx", vc = "pubDate in 2012") %>%
     fetchNext()
   expect_output(print(q), "Xmeisenplagx.*pubDate in 2012")
@@ -97,7 +97,7 @@
 
 test_that("Non-empty query result is printable", {
   skip_if_offline()
-  q <- new("KorAPConnection", accessToken = NULL, cache = TRUE, verbose = TRUE) %>%
+  q <- KorAPConnection(accessToken = NULL, cache = TRUE, verbose = TRUE) %>%
     corpusQuery("Ameisenplage", "pubDate since 2014", fields=c("textSigle")) %>%
     fetchRest()
   expect_output(print(q), "Ameisenplage.*pubDate since 2014")
@@ -105,7 +105,7 @@
 
 test_that("Query from KorAP URL returns as many results as corresponding direct query", {
   skip_if_offline()
-  kco <- new("KorAPConnection", accessToken = NULL)
+  kco <- KorAPConnection(accessToken = NULL)
   r1 <- corpusQuery(kco, KorAPUrl = "https://korap.ids-mannheim.de/?q=Ameisenplage&cq=pubDate+since+2014&ql=poliqarp")@totalResults
   r2 <- corpusQuery(kco, "Ameisenplage", "pubDate since 2014")@totalResults
   expect_equal(r1, r2)
@@ -113,13 +113,13 @@
 
 test_that("Typo in query causes error", {
   skip_if_offline()
-  kco <- new("KorAPConnection", accessToken = NULL, verbose = TRUE)
+  kco <- KorAPConnection(accessToken = NULL, verbose = TRUE)
   expect_message(kco %>% corpusQuery("[[xx"), "unbalanced")
 })
 
 test_that("corpusQuery token API works", {
   skip_if_offline()
-  kco <- new("KorAPConnection", accessToken = NULL,
+  kco <- KorAPConnection(accessToken = NULL,
              verbose = TRUE)
   q <- corpusQuery(kco, "focus([tt/p=ADJA] {Newstickeritis})", vc = "corpusSigle=/W.D17/", metadataOnly = FALSE)
   q <- fetchNext(q)
@@ -138,7 +138,7 @@
 
 test_that("matchStart and matchEnd are present and correct", {
   skip_if_offline()
-  kco <- new("KorAPConnection", accessToken = NULL, verbose = TRUE)
+  kco <- KorAPConnection(accessToken = NULL, verbose = TRUE)
   q <- corpusQuery(kco, "focus([tt/p=ADJA] {Newstickeritis})", vc = "corpusSigle=/W.D17/", metadataOnly = FALSE)
   q <- fetchNext(q)
   matches <-q@collectedMatches
@@ -147,7 +147,7 @@
 })
 
 test_that("extended metadata fields work cortrectly on instane KED", {
-  kco <- new("KorAPConnection", KorAPUrl = "https://korap.ids-mannheim.de/instance/ked", accessToken = NULL,
+  kco <- KorAPConnection(KorAPUrl = "https://korap.ids-mannheim.de/instance/ked", accessToken = NULL,
              verbose = TRUE)
   q <- corpusQuery(
     kco,
@@ -191,7 +191,7 @@
 
 test_that("corpusQuery token API works when textSigle field is deselected", {
   skip_if_offline()
-  kco <- new("KorAPConnection", accessToken = NULL, verbose = TRUE)
+  kco <- KorAPConnection(accessToken = NULL, verbose = TRUE)
   q <- corpusQuery(kco, "focus([tt/p=ADJA] {Newstickeritis})",
                    vc = "corpusSigle=/W.D17/",
                    fields = c("tokens"),
diff --git a/tests/testthat/test-corpusStats.R b/tests/testthat/test-corpusStats.R
index c25670d..f12159d 100644
--- a/tests/testthat/test-corpusStats.R
+++ b/tests/testthat/test-corpusStats.R
@@ -1,6 +1,6 @@
 test_that("corpusStats works", {
   skip_if_offline()
-  stats <- new("KorAPConnection", accessToken = NULL) %>% corpusStats("pubDate since 2020 & pubDate until 2021")
+  stats <- KorAPConnection(accessToken = NULL) %>% corpusStats("pubDate since 2020 & pubDate until 2021")
   expect_gt(stats@tokens, 0)
   expect_gt(stats@paragraphs, 0)
   expect_gt(stats@documents, 0)
@@ -9,7 +9,7 @@
 
 test_that("corpusStats with result as df works", {
   skip_if_offline()
-  stats <- new("KorAPConnection", accessToken = NULL) %>% corpusStats("pubDate since 2020 & pubDate until 2021", as.df = TRUE)
+  stats <- KorAPConnection(accessToken = NULL) %>% corpusStats("pubDate since 2020 & pubDate until 2021", as.df = TRUE)
   expect_gt(stats$tokens, 0)
   expect_gt(stats$paragraphs, 0)
   expect_gt(stats$documents, 0)
@@ -18,12 +18,12 @@
 
 test_that("Printing corpusStats for the whole corpus works", {
   skip_if_offline()
-  stats <- new("KorAPConnection", accessToken = NULL) %>% corpusStats()
+  stats <- KorAPConnection(accessToken = NULL) %>% corpusStats()
   expect_error(print(stats), NA)
 })
 
 test_that("Printing corpusStats for a sub-corpus works", {
   skip_if_offline()
-  stats <- new("KorAPConnection", accessToken = NULL) %>% corpusStats("pubDate since 2020 & pubDate until 2021")
+  stats <- KorAPConnection(accessToken = NULL) %>% corpusStats("pubDate since 2020 & pubDate until 2021")
   expect_error(print(stats), NA)
 })
diff --git a/tests/testthat/test-demos.R b/tests/testthat/test-demos.R
index 2e1a0a3..7bd38e4 100644
--- a/tests/testthat/test-demos.R
+++ b/tests/testthat/test-demos.R
@@ -2,7 +2,7 @@
   skip_if_offline()
   year <- c(2013:2018)
   alternatives <- c("macht []{0,3} Sinn", "ergibt []{0,3} Sinn")
-  hc <- new("KorAPConnection", accessToken = NULL, verbose = TRUE) %>%
+  hc <- KorAPConnection(accessToken = NULL, verbose = TRUE) %>%
     frequencyQuery(
       query = alternatives,
       vc = paste("textType = /Zeit.*/ & pubDate in", year),
@@ -17,7 +17,7 @@
   year <- c(2013:2018)
   alternatives <- c("macht []{0,3} Sinn", "ergibt []{0,3} Sinn")
 
-  hc <- new("KorAPConnection", accessToken = NULL, verbose = TRUE) %>%
+  hc <- KorAPConnection(accessToken = NULL, verbose = TRUE) %>%
     frequencyQuery(
       query = alternatives,
       vc = paste("textType = /Zeit.*/ & pubDate in", year),
@@ -32,7 +32,7 @@
   year <- c(2013:2018)
   alternatives <- c("macht []{0,3} Sinn", "ergibt []{0,3} Sinn")
 
-  hc <- new("KorAPConnection", accessToken = NULL, verbose = TRUE) %>%
+  hc <- KorAPConnection(accessToken = NULL, verbose = TRUE) %>%
     frequencyQuery(
       query = alternatives,
       vc = paste("textType = /Zeit.*/ & pubDate in", year),
@@ -47,7 +47,7 @@
   year <- c(2013:2018)
   q <- c("macht []{0,3} Sinn")
 
-  hc <- new("KorAPConnection", accessToken = NULL, verbose = TRUE) %>%
+  hc <- KorAPConnection(accessToken = NULL, verbose = TRUE) %>%
     frequencyQuery(
       query = q,
       vc = paste("textType = /Zeit.*/ & pubDate in", year),
@@ -59,7 +59,7 @@
 
 test_that("Auto conditions over time highcharter example works", {
   skip_if_offline()
-  kco <- new("KorAPConnection", accessToken = NULL, verbose=TRUE)
+  kco <- KorAPConnection(accessToken = NULL, verbose=TRUE)
   hc <- expand_grid(
     myconditions = c("textDomain = /Wirtschaft.*/",
                   "textDomain != /Wirtschaft.*/"),
@@ -76,7 +76,7 @@
 
 test_that("Single condition over time highcharter example works", {
   skip_if_offline()
-  kco <- new("KorAPConnection", accessToken = NULL, verbose=TRUE)
+  kco <- KorAPConnection(accessToken = NULL, verbose=TRUE)
   hc <- expand_grid(
     condition = c("textDomain = /Wirtschaft.*/"),
     year = (2011:2013)
@@ -92,7 +92,7 @@
 
 test_that("Multiple conditions over time highcharter example works", {
   skip_if_offline()
-  kco <- new("KorAPConnection", accessToken = NULL, verbose=TRUE)
+  kco <- KorAPConnection(accessToken = NULL, verbose=TRUE)
   hc <- expand_grid(
     condition = c("textDomain = /Wirtschaft.*/",
                   "textDomain != /Wirtschaft.*/"),
@@ -109,7 +109,7 @@
 
 test_that("Multiple conditions and queries over time highcharter example works", {
   skip_if_offline()
-  kco <- new("KorAPConnection", accessToken = NULL, verbose=TRUE)
+  kco <- KorAPConnection(accessToken = NULL, verbose=TRUE)
   hc <- expand_grid(
     qx = c("[tt/l=Heuschrecke]", "Ameise"),
     condition = c("textDomain = /Wirtschaft.*/",
@@ -127,7 +127,7 @@
 
 test_that("collocationScoreQuery works with hchart and hc_add_onclick_korap_search", {
   skip_if_offline()
-  kco <- new("KorAPConnection", accessToken = NULL, cache = TRUE, verbose = TRUE)
+  kco <- KorAPConnection(accessToken = NULL, cache = TRUE, verbose = TRUE)
   df <- collocationScoreQuery(kco,"Ameisenplage", "heimgesucht", leftContextSize=0, rightContextSize=1)
   hc <- hchart(df, type="spline", hcaes(label, logDice))
   hc <- hc_add_onclick_korap_search(hc)
diff --git a/tests/testthat/test-textMetadata.R b/tests/testthat/test-textMetadata.R
index 2355322..ab9ba01 100644
--- a/tests/testthat/test-textMetadata.R
+++ b/tests/testthat/test-textMetadata.R
@@ -1,18 +1,18 @@
 test_that("textMetadata works", {
   skip_if_offline()
-  m <- new("KorAPConnection", accessToken = NULL) %>% textMetadata(c("WUD17/B96/57558", "WUD17/A97/08541"))
+  m <- KorAPConnection(accessToken = NULL) %>% textMetadata(c("WUD17/B96/57558", "WUD17/A97/08541"))
   expect("textType" %in% names(m), "textMetadata value should contain a textType column")
 })
 
 
 test_that("textMetadata works for unknown text sigles", {
   skip_if_offline()
-  m <- new("KorAPConnection", accessToken = NULL) %>% textMetadata(c("WUD17/B96/57558", "unknownsigle"))
+  m <- KorAPConnection(accessToken = NULL) %>% textMetadata(c("WUD17/B96/57558", "unknownsigle"))
   expect("errors" %in% names(m), "textMetadata should return an errors column if a text does not exist")
 })
 
 test_that("textMetadata works with list valued fields", {
   skip_if_offline()
-  m <- new("KorAPConnection", accessToken = NULL) %>% textMetadata("WUD17/B96/57558")
+  m <- KorAPConnection(accessToken = NULL) %>% textMetadata("WUD17/B96/57558")
   expect("staat-gesellschaft\\tbiographien-interviews" == m$textClass[1], "multiple text classes / domnains should be tab separated")
 })
