diff --git a/man/gpt3.authenticate.Rd b/man/gpt3.authenticate.Rd
deleted file mode 100644
index d8751ad..0000000
--- a/man/gpt3.authenticate.Rd
+++ /dev/null
@@ -1,26 +0,0 @@
-% Generated by roxygen2: do not edit by hand
-% Please edit documentation in R/authenticate.R
-\name{gpt3.authenticate}
-\alias{gpt3.authenticate}
-\title{Set up the authentication with your API key}
-\usage{
-gpt3.authenticate(path)
-}
-\arguments{
-\item{path}{The file path to the API key}
-}
-\value{
-A confirmation message
-}
-\description{
-Access to GPT-3's functions requires an API key that you obtain from \url{https://openai.com/api/}. \code{gpt3.authenticate()} accepts your API key and ensures that you can connect to the models. \code{gpt3.endsession()} overwrites your API key \emph{for this session} (it is recommended that you run this when you are done). \code{check_apikey_form()} is a simple check if any information has been provided at all.
-}
-\details{
-The easiest way to store you API key is in a \code{.txt} file with \emph{only} the API key in it (without quotation marks or other common string indicators). \code{gpt3.authenticate()} reads the single file you point it to and retrieves the content as authentication key for all requests.
-}
-\examples{
-# Starting a session:
-gpt3.authenticate(apikey = 'REPLACE_THIS_WITH_YOUR_KEY')
-# After you are finished:
-gpt3.endsession()
-}
diff --git a/man/gpt3.make_request.Rd b/man/gpt3.make_request.Rd
deleted file mode 100644
index dcdff54..0000000
--- a/man/gpt3.make_request.Rd
+++ /dev/null
@@ -1,37 +0,0 @@
-% Generated by roxygen2: do not edit by hand
-% Please edit documentation in R/make_request.R
-\name{gpt3.make_request}
-\alias{gpt3.make_request}
-\title{Make a test request to the GPT-3 API}
-\usage{
-gpt3.make_request(
-  prompt_,
-  model_ = "text-davinci-002",
-  output_type_ = "string_only",
-  suffix_ = NULL,
-  max_tokens_ = 256,
-  temperature_ = 0.9,
-  top_p_ = 1,
-  n_ = 1,
-  stream_ = F,
-  logprobs_ = NULL,
-  echo_ = F,
-  stop_ = NULL,
-  presence_penalty_ = 0,
-  frequency_penalty_ = 0,
-  best_of_ = 1,
-  logit_bias_ = NULL
-)
-}
-\arguments{
-\item{verbose}{(boolean) if TRUE prints the actual prompt and GPT-3 completion of the test request (default: FALSE).}
-}
-\value{
-A message of success or failure of the connection.
-}
-\description{
-\code{gpt3.test_request()} sends a basic \href{https://beta.openai.com/docs/api-reference/completions}{completion request} to the Open AI GPT-3 API.
-}
-\examples{
-gpt3.test_request()
-}
diff --git a/man/gpt3_authenticate.Rd b/man/gpt3_authenticate.Rd
new file mode 100644
index 0000000..e07ca46
--- /dev/null
+++ b/man/gpt3_authenticate.Rd
@@ -0,0 +1,26 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/authenticate.R
+\name{gpt3_authenticate}
+\alias{gpt3_authenticate}
+\title{Set up the authentication with your API key}
+\usage{
+gpt3_authenticate(path)
+}
+\arguments{
+\item{path}{The file path to the API key}
+}
+\value{
+A confirmation message
+}
+\description{
+Access to GPT-3's functions requires an API key that you obtain from \url{https://openai.com/api/}. \code{gpt3_authenticate()} looks for your API key in a file that you provide the path to and ensures you can connect to the models. \code{gpt3_endsession()} overwrites your API key \emph{for this session} (it is recommended that you run this when you are done). \code{check_apikey_form()} is a simple check if any information has been provided at all.
+}
+\details{
+The easiest way to store you API key is in a \code{.txt} file with \emph{only} the API key in it (without quotation marks or other common string indicators). \code{gpt3_authenticate()} reads the single file you point it to and retrieves the content as authentication key for all requests.
+}
+\examples{
+# Starting a session:
+gpt3_authenticate(path = './YOURPATH/access_key.txt')
+# After you are finished:
+gpt3_endsession()
+}
diff --git a/man/gpt3_simple_request.Rd b/man/gpt3_simple_request.Rd
new file mode 100644
index 0000000..71ed790
--- /dev/null
+++ b/man/gpt3_simple_request.Rd
@@ -0,0 +1,88 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/make_request.R
+\name{gpt3_simple_request}
+\alias{gpt3_simple_request}
+\title{Makes a single completion request to the GPT-3 API}
+\usage{
+gpt3_simple_request(
+  prompt_input,
+  model = "text-davinci-002",
+  output_type = "complete",
+  suffix = NULL,
+  max_tokens = 100,
+  temperature = 0.9,
+  top_p = 1,
+  n = 1,
+  logprobs = NULL,
+  stop = NULL,
+  presence_penalty = 0,
+  frequency_penalty = 0,
+  best_of = 1
+)
+}
+\arguments{
+\item{prompt_input}{character that contains the prompt to the GPT-3 request}
+
+\item{model}{a character vector that indicates the \href{https://beta.openai.com/docs/models/gpt-3}{model} to use; one of "text-davinci-002" (default), "text-curie-001", "text-babbage-001" or "text-ada-001"}
+
+\item{output_type}{character determining the output provided: "complete" (default), "text" or "meta"}
+
+\item{suffix}{character (default: NULL) (from the official API documentation: \emph{The suffix that comes after a completion of inserted text})}
+
+\item{max_tokens}{numeric (default: 100) indicating the maximum number of tokens that the completion request should return (from the official API documentation: \emph{The maximum number of tokens to generate in the completion. The token count of your prompt plus max_tokens cannot exceed the model's context length. Most models have a context length of 2048 tokens (except for the newest models, which support 4096)})}
+
+\item{temperature}{numeric (default: 0.9) specifying the sampling strategy of the possible completions (from the official API documentation: \emph{What sampling temperature to use. Higher values means the model will take more risks. Try 0.9 for more creative applications, and 0 (argmax sampling) for ones with a well-defined answer. We generally recommend altering this or top_p but not both.})}
+
+\item{top_p}{numeric (default: 1) specifying sampling strategy as an alternative to the temperature sampling (from the official API documentation: \emph{An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10\% probability mass are considered. We generally recommend altering this or temperature but not both.})}
+
+\item{n}{numeric (default: 1) specifying the number of completions per request (from the official API documentation: \emph{How many completions to generate for each prompt. \strong{Note: Because this parameter generates many completions, it can quickly consume your token quota.} Use carefully and ensure that you have reasonable settings for max_tokens and stop.})}
+
+\item{logprobs}{numeric (default: NULL) (from the official API documentation: \emph{Include the log probabilities on the logprobs most likely tokens, as well the chosen tokens. For example, if logprobs is 5, the API will return a list of the 5 most likely tokens. The API will always return the logprob of the sampled token, so there may be up to logprobs+1 elements in the response. The maximum value for logprobs is 5. If you need more than this, please contact support@openai.com and describe your use case.})}
+
+\item{stop}{character or character vector (default: NULL) that specifies after which character value when the completion should end (from the official API documentation: \emph{Up to 4 sequences where the API will stop generating further tokens. The returned text will not contain the stop sequence.})}
+
+\item{presence_penalty}{numeric (default: 0) between -2.00  and +2.00 to determine the penalisation of repetitiveness if a token already exists (from the official API documentation: \emph{Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.}). See also: \url{https://beta.openai.com/docs/api-reference/parameter-details}}
+
+\item{frequency_penalty}{numeric (default: 0) between -2.00  and +2.00 to determine the penalisation of repetitiveness based on the frequency of a token in the text already (from the official API documentation: \emph{Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.}). See also: \url{https://beta.openai.com/docs/api-reference/parameter-details}}
+
+\item{best_of}{numeric (default: 1) that determines the space of possibilities from which to select the completion with the highest probability (from the official API documentation: \emph{Generates \code{best_of} completions server-side and returns the "best" (the one with the highest log probability per token)}). See details.}
+}
+\value{
+A list with two data tables (if \code{output_type} is the default "complete"): [\link{1}] contains the data table with the columns \code{n} (= the mo. of \code{n} responses requested), \code{prompt} (= the prompt that was sent), and \code{gpt3} (= the completion as returned from the GPT-3 model). [\link{2}] contains the meta information of the request, including the request id, the parameters of the request and the token usage of the prompt (\code{tok_usage_prompt}), the completion (\code{tok_usage_completion}) and the total usage (\code{tok_usage_total}).
+
+If \code{output_type} is "text", only the data table in slot [\link{1}] is returned.
+
+If \code{output_type} is "meta", only the data table in slot [\link{2}] is returned.
+}
+\description{
+\code{gpt3_single_request()} sends a single \href{https://beta.openai.com/docs/api-reference/completions}{completion request} to the Open AI GPT-3 API.
+}
+\details{
+For a general guide on the completion requests, see \url{https://beta.openai.com/docs/guides/completion}. This function provides you with an R wrapper to send requests with the full range of request parameters as detailed on \url{https://beta.openai.com/docs/api-reference/completions} and reproduced below.
+
+For the \code{best_of} parameter: When used with n, best_of controls the number of candidate completions and n specifies how many to return – best_of must be greater than n. Note that this is handled by the wrapper automatically   if(best_of <= n){ best_of = n}.
+
+Parameters not included/supported:
+\itemize{
+\item \code{logit_bias}: \url{https://beta.openai.com/docs/api-reference/completions/create#completions/create-logit_bias}
+\item \code{echo}: \url{https://beta.openai.com/docs/api-reference/completions/create#completions/create-echo}
+\item \code{stream}: \url{https://beta.openai.com/docs/api-reference/completions/create#completions/create-stream}
+}
+}
+\examples{
+# First authenticate with your API key via `gpt3_authenticate('pathtokey')`
+
+# Once authenticated:
+
+## Simple request with defaults:
+gpt3_simple_request(prompt_input = 'How old are you?')
+
+## Instruct GPT-3 to write ten research ideas of max. 150 tokens with some controls:
+gpt3_simple_request(prompt_input = 'Write a research idea about using text data to understand human behaviour:', temperature = 0.8, n = 10, max_tokens = 150)
+
+## For fully reproducible results, we need `temperature = 0`, e.g.:
+gpt3_simple_request(prompt_input = 'Finish this sentence:/n There is no easier way to learn R than', temperature = 0.0, max_tokens = 50)
+
+## The same example with a different GPT-3 model:
+gpt3_simple_request(prompt_input = 'Finish this sentence:/n There is no easier way to learn R than', model = 'text-babbage-001', temperature = 0.0, max_tokens = 50)
+}
