diff --git a/Tidyverse_Tutorial_.ipynb b/Tidyverse_Tutorial_.ipynb
index 8c2a46ff29dc6caa16eddb0dac94da58e745f712..ce5412f28d51a4699133eb7fade11c3e1ecfd939 100644
--- a/Tidyverse_Tutorial_.ipynb
+++ b/Tidyverse_Tutorial_.ipynb
@@ -122,6 +122,117 @@
     "# install.packages(\"tidyverse\")"
    ]
   },
+  {
+   "cell_type": "markdown",
+   "id": "6d010f73",
+   "metadata": {},
+   "source": [
+    "### ggplot2\n",
+    "ggplot2 is a library specifically for creating graphics. To use it, you need to specify a dataset, provide an aesthetic map, then add layers (the type of graphs you would like), scales, faceting specifications, and coordinate systems. For example, a ggplot could look like:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "4c3d57bb",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# library(ggplot2)\n",
+    "# ggplot(mpg, aes(x=displ,y=hwy,color = class)) +\n",
+    "#  geom_point() +\n",
+    "#  facet_wrap(.~year)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "9b701014",
+   "metadata": {},
+   "source": [
+    "where mpg is the dataset, aes() are the aesthetics,geom_point() is the layer, and facet_wrap() are the faceting specifications.\n",
+    "\n",
+    "Like all other tidyverse libraries, ggplot comes installed with tidyverse, but still must be loaded with the ```library(ggplot2)``` command. For more information about ggplot2 can be found on it's website [here](https://ggplot2.tidyverse.org)."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "61f8ec16",
+   "metadata": {},
+   "source": [
+    "## dplyr\n",
+    "\n",
+    "dplyr is a library that establishes a common grammar for data manipulation across all of the tidyverse packages. dplyr also helps R communicate with other computational backends like SQL or cloud databases. It adds the following commands \n",
+    "* mutate() adds a new variable that is a function of existing variables\n",
+    "* select() picks variables based on their names\n",
+    "* filter() picks data points based on their values\n",
+    "* summarise() reduces multiple variables into a single summary\n",
+    "* arrange() changes the way rows are ordered\n",
+    "* group_by() allows for any of the above operations to be done by group\n",
+    "\n",
+    "\n",
+    "Like all other tidyverse libraries, ggplot comes installed with tidyverse, but still must be loaded with the ```library(dplyr)``` command. For more information about ggplot2 can be found on it's website [here](https://dplyr.tidyverse.org)."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "7bf43715",
+   "metadata": {},
+   "source": [
+    "## tidyr\n",
+    "\n",
+    "tidyr helps people create tidy data, which is defined as data where every column is variable, every row is an observation, and every cell is a single value. Tidy data is helpful because all of the tidyverse is based on tidy data, meaning if you standardize your data as tidy you can use it with any tidyverse library.\n",
+    "\n",
+    "There are five main categories of tidyr functions:\n",
+    "\n",
+    "* Pivoting, which converts between long and wide forms of data (e.g converts categories  into one row)\n",
+    "* Rectangling, which turns nested lists (often from .JSON files) into tibbles more easily used by the tidyverse\n",
+    "* Nesting, which converts grouped data to a form each group becomes a single row with a nested data frame, and unnesting which does the opposite\n",
+    "* Splitting and combining columns containing characters. ```seperate()``` and ```extract()``` pull single character columns into multiple columns, and ```unite()``` combines multiple columns into a single column\n",
+    "* Make implicit missing values explicit with ```complete()``` and explicit missing values implicit with ```drop_na()```. Replaces missing values with ```fill()```, or ```replace_na()```.\n",
+    "\n",
+    "Like all other tidyverse libraries, ggplot comes installed with tidyverse, but still must be loaded with the ```library(tidyr)``` command. For more information about ggplot2 can be found on it's website [here](https://tidyr.tidyverse.org)."
+   ]
+  },
+  {
+   "attachments": {},
+   "cell_type": "markdown",
+   "id": "0b7d2969",
+   "metadata": {},
+   "source": [
+    "## readr\n",
+    "Fast way to read rectangular data from delimited files. It's main purpose is to parse a wide variety of data types.\n",
+    "\n",
+    "For comma-separated files: ```read_csv()```\n",
+    "\n",
+    "For tab separated values: ```read_tsv()```\n",
+    "\n",
+    "For whitespace-separated files: ```read_table()```\n",
+    "\n",
+    "For fixed-width files: ```read_fwf```\n",
+    "\n",
+    "For more information on readr visit: https://readr.tidyverse.org/\n",
+    "\n",
+    "## purrr\n",
+    "purrr is a package that offers a family of functions that can be used to iterate of lists. For instance, the map() function is used to replace 'for' loops, which can make the code easier to read and make the code more efficient.\n",
+    "\n",
+    "For more information on purrr visit: https://purrr.tidyverse.org/\n",
+    "\n",
+    "## tibble\n",
+    "Tibbles are dataframes that are lazy and complain more. This will make the user to confront problems earlier leading to a cleaner dataset and more expressive code.\n",
+    "\n",
+    "For more information on Tibble visit: https://tibble.tidyverse.org/ \n",
+    "\n",
+    "## stringr\n",
+    "provides functions that makes working with strings easier. Stringr uses string manipulation functions to simplify your workflow with strings.\n",
+    "\n",
+    "For more information on stringr visit: https://stringr.tidyverse.org/\n",
+    "\n",
+    "## forcats\n",
+    "Package provides a suite of tools that are able to solve common problems with factor, which includes the changes the order of levels.\n",
+    "\n",
+    "For more information on forcats visit: https://forcats.tidyverse.org/"
+   ]
+  },
   {
    "cell_type": "markdown",
    "id": "adafbd4d",