diff --git a/R/bunch_embedding.R b/R/gpt3_embeddings.R
similarity index 82%
rename from R/bunch_embedding.R
rename to R/gpt3_embeddings.R
index d22a3ac..513a5b8 100644
--- a/R/bunch_embedding.R
+++ b/R/gpt3_embeddings.R
@@ -1,7 +1,7 @@
 #' Retrieves text embeddings for character input from a vector from the GPT-3 API
 #'
 #' @description
-#' `gpt3_bunch_embedding()` extends the single embeddings function `gpt3_make_embedding()` to allow for the processing of a whole vector
+#' `gpt3_embeddings()` extends the single embeddings function `gpt3_single_embedding()` to allow for the processing of a whole vector
 #' @details The returned data.table contains the column `id` which indicates the text id (or its generic alternative if not specified) and the columns `dim_1` ... `dim_{max}`, where `max` is the length of the text embeddings vector that the four different models return. For the default "Ada" model, these are 1024 dimensions (i.e., `dim_1`... `dim_1024`).
 #'
 #' The function supports the text similarity embeddings for the four GPT-3 models as specified in the parameter list. The main difference between the four models is the sophistication of the embedding representation as indicated by the vector embedding size.
@@ -21,19 +21,19 @@
 #' # First authenticate with your API key via `gpt3_authenticate('pathtokey')`
 #'
 #' # Use example data:
-#' ## The data below were generated with the `gpt3_make_request()` function as follows:
+#' ## The data below were generated with the `gpt3_single_request()` function as follows:
 #' ##### DO NOT RUN #####
-#' # travel_blog_data = gpt3_make_request(prompt_input = "Write a travel blog about a dog's journey through the UK:", temperature = 0.8, n = 10, max_tokens = 200)[[1]]
+#' # travel_blog_data = gpt3_single_request(prompt_input = "Write a travel blog about a dog's journey through the UK:", temperature = 0.8, n = 10, max_tokens = 200)[[1]]
 #' ##### END DO NOT RUN #####
 #'
 #' # You can load these data with:
 #' data("travel_blog_data") # the dataset contains 10 completions for the above request
 #'
 #' ## Obtain text embeddings for the completion texts:
-#' emb_travelblogs = gpt3_bunch_embedding(input_var = travel_blog_data$gpt3)
+#' emb_travelblogs = gpt3_embeddings(input_var = travel_blog_data$gpt3)
 #' dim(emb_travelblogs)
 #' @export
-gpt3_bunch_embedding = function(input_var
+gpt3_embeddings = function(input_var
                                 , id_var
                                 , param_model = 'text-similarity-ada-001'){
 
@@ -50,7 +50,7 @@
 
     print(paste0('Embedding: ', i, '/', data_length))
 
-    row_outcome = gpt3_make_embedding(model = param_model
+    row_outcome = gpt3_single_embedding(model = param_model
                                       , input = input_var[i])
 
     empty_df = data.frame(t(row_outcome))
diff --git a/R/bunch_request.R b/R/gpt3_requests.R
similarity index 92%
rename from R/bunch_request.R
rename to R/gpt3_requests.R
index dc9a7f2..1342dc2 100644
--- a/R/bunch_request.R
+++ b/R/gpt3_requests.R
@@ -1,12 +1,12 @@
 #' Makes bunch completion requests to the GPT-3 API
 #'
 #' @description
-#' `gpt3_bunch_request()` is the package's main function for rquests and takes as input a vector of prompts and processes each prompt as per the defined parameters. It extends the `gpt3_make_request()` function to allow for bunch processing of requests to the Open AI GPT-3 API.
+#' `gpt3_requests()` is the package's main function for rquests and takes as input a vector of prompts and processes each prompt as per the defined parameters. It extends the `gpt3_single_request()` function to allow for bunch processing of requests to the Open AI GPT-3 API.
 #' @details
 #' The easiest (and intended) use case for this function is to create a data.frame or data.table with variables that contain the prompts to be requested from GPT-3 and a prompt id (see examples below).
 #' For a general guide on the completion requests, see [https://beta.openai.com/docs/guides/completion](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 [https://beta.openai.com/docs/api-reference/completions](https://beta.openai.com/docs/api-reference/completions) and reproduced below.
 #'
-#' For the `best_of` parameter: The `gpt3_make_request()` (which is used here in a vectorised manner) handles the issue that best_of must be greater than n by setting `if(best_of <= n){ best_of = n}`.
+#' For the `best_of` parameter: The `gpt3_single_request()` (which is used here in a vectorised manner) handles the issue that best_of must be greater than n by setting `if(best_of <= n){ best_of = n}`.
 #'
 #' If `id_var` is not provided, the function will use `prompt_1` ... `prompt_n` as id variable.
 #'
@@ -41,30 +41,30 @@
 #' # Once authenticated:
 #' # Assuming you have a data.table with 3 different prompts:
 #' dt_prompts = data.table::data.table('prompts' = c('What is the meaning if life?', 'Write a tweet about London:', 'Write a research proposal for using AI to fight fake news:'), 'prompt_id' = c(LETTERS[1:3]))
-#'gpt3_bunch_request(prompt_var = dt_prompts$prompts
+#'gpt3_requests(prompt_var = dt_prompts$prompts
 #'    , id_var = dt_prompts$prompt_id)
 #'
 #' ## With more controls
-#'gpt3_bunch_request(prompt_var = dt_prompts$prompts
+#'gpt3_requests(prompt_var = dt_prompts$prompts
 #'    , id_var = dt_prompts$prompt_id
 #'    , param_max_tokens = 50
 #'    , param_temperature = 0.5
 #'    , param_n = 5)
 #'
 #' ## Reproducible example (deterministic approach)
-#'gpt3_bunch_request(prompt_var = dt_prompts$prompts
+#'gpt3_requests(prompt_var = dt_prompts$prompts
 #'    , id_var = dt_prompts$prompt_id
 #'    , param_max_tokens = 50
 #'    , param_temperature = 0.0)
 #'
 #' ## Changing the GPT-3 model
-#'gpt3_bunch_request(prompt_var = dt_prompts$prompts
+#'gpt3_requests(prompt_var = dt_prompts$prompts
 #'    , id_var = dt_prompts$prompt_id
 #'    , param_model = 'text-babbage-001'
 #'    , param_max_tokens = 50
 #'    , param_temperature = 0.4)
 #' @export
-gpt3_bunch_request = function(prompt_var
+gpt3_requests = function(prompt_var
                               , id_var
                               , param_output_type = 'complete'
                               , param_model = 'text-davinci-002'
@@ -93,7 +93,7 @@
 
     print(paste0('Request: ', i, '/', data_length))
 
-    row_outcome = gpt3_make_request(prompt_input = prompt_var[i]
+    row_outcome = gpt3_single_request(prompt_input = prompt_var[i]
                                       , model = param_model
                                       , output_type = 'complete'
                                       , suffix = param_suffix
diff --git a/R/make_embedding.R b/R/gpt3_single_embedding.R
similarity index 88%
rename from R/make_embedding.R
rename to R/gpt3_single_embedding.R
index a916ac6..8ec6d23 100644
--- a/R/make_embedding.R
+++ b/R/gpt3_single_embedding.R
@@ -1,7 +1,7 @@
 #' Obtains text embeddings for a single character (string) from the GPT-3 API
 #'
 #' @description
-#' `gpt3_make_embedding()` sends a single [embedding request](https://beta.openai.com/docs/guides/embeddings) to the Open AI GPT-3 API.
+#' `gpt_single_embedding()` sends a single [embedding request](https://beta.openai.com/docs/guides/embeddings) to the Open AI GPT-3 API.
 #' @details The function supports the text similarity embeddings for the four GPT-3 models as specified in the parameter list. The main difference between the four models is the sophistication of the embedding representation as indicated by the vector embedding size.
 #'   - Ada (1024 dimensions)
 #'   - Babbage (2048 dimensions)
@@ -21,13 +21,13 @@
 #'
 #' ## Simple request with defaults:
 #' sample_string = "London is one of the most liveable cities in the world. The city is always full of energy and people. It's always a great place to explore and have fun."
-#' gpt3_make_embedding(input = sample_string)
+#' gpt_single_embedding(input = sample_string)
 #'
 #' ## Change the model:
-#' #' gpt3_make_embedding(input = sample_string
+#' #' gpt_single_embedding(input = sample_string
 #'     , model = 'text-similarity-curie-001')
 #' @export
-gpt3_make_embedding = function(input
+gpt_single_embedding = function(input
                                , model = 'text-similarity-ada-001'
                                ){
 
diff --git a/R/make_request.R b/R/gpt3_single_request.R
similarity index 94%
rename from R/make_request.R
rename to R/gpt3_single_request.R
index 7fa653a..4858140 100644
--- a/R/make_request.R
+++ b/R/gpt3_single_request.R
@@ -1,7 +1,7 @@
 #' Makes a single completion request to the GPT-3 API
 #'
 #' @description
-#' `gpt3_make_request()` sends a single [completion request](https://beta.openai.com/docs/api-reference/completions) to the Open AI GPT-3 API.
+#' `gpt3_single_request()` sends a single [completion request](https://beta.openai.com/docs/api-reference/completions) to the Open AI GPT-3 API.
 #' @details For a general guide on the completion requests, see [https://beta.openai.com/docs/guides/completion](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 [https://beta.openai.com/docs/api-reference/completions](https://beta.openai.com/docs/api-reference/completions) and reproduced below.
 #'
 #' For the `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}.
@@ -36,26 +36,26 @@
 #' # Once authenticated:
 #'
 #' ## Simple request with defaults:
-#' gpt3_make_request(prompt_input = 'How old are you?')
+#' gpt3_single_request(prompt_input = 'How old are you?')
 #'
 #' ## Instruct GPT-3 to write ten research ideas of max. 150 tokens with some controls:
-#'gpt3_make_request(prompt_input = 'Write a research idea about using text data to understand human behaviour:'
+#'gpt3_single_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_make_request(prompt_input = 'Finish this sentence:/n There is no easier way to learn R than'
+#' gpt3_single_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_make_request(prompt_input = 'Finish this sentence:/n There is no easier way to learn R than'
+#' gpt3_single_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)
 #' @export
-gpt3_make_request = function(prompt_input
+gpt3_single_request = function(prompt_input
                               , model = 'text-davinci-002'
                               , output_type = 'complete'
                               , suffix = NULL
diff --git a/R/test_request.R b/R/test_request.R
index 7b8c7e4..673f1c0 100644
--- a/R/test_request.R
+++ b/R/test_request.R
@@ -12,7 +12,7 @@
   check_apikey_form()
 
   test_prompt = 'Write a story about R Studio:'
-  test_outout = gpt3_make_request(prompt_ = test_prompt
+  test_outout = gpt3_single_request(prompt_ = test_prompt
                                   , max_tokens = 100)
   print(paste0('.. test successful ..'))
 
