diff --git a/.Rproj.user/441ADA46/pcs/source-pane.pper b/.Rproj.user/441ADA46/pcs/source-pane.pper
index 70829f6..1743e40 100644
--- a/.Rproj.user/441ADA46/pcs/source-pane.pper
+++ b/.Rproj.user/441ADA46/pcs/source-pane.pper
@@ -1,3 +1,3 @@
 {
-    "activeTab" : 1
+    "activeTab" : 0
 }
\ No newline at end of file
diff --git a/.Rproj.user/441ADA46/pcs/windowlayoutstate.pper b/.Rproj.user/441ADA46/pcs/windowlayoutstate.pper
index e9b88cf..4373672 100644
--- a/.Rproj.user/441ADA46/pcs/windowlayoutstate.pper
+++ b/.Rproj.user/441ADA46/pcs/windowlayoutstate.pper
@@ -2,7 +2,7 @@
     "left" : {
         "panelheight" : 789,
         "splitterpos" : 329,
-        "topwindowstate" : "NORMAL",
+        "topwindowstate" : "EXCLUSIVE",
         "windowheight" : 828
     },
     "right" : {
diff --git a/.Rproj.user/441ADA46/pcs/workbench-pane.pper b/.Rproj.user/441ADA46/pcs/workbench-pane.pper
index b15bf23..d5d6c04 100644
--- a/.Rproj.user/441ADA46/pcs/workbench-pane.pper
+++ b/.Rproj.user/441ADA46/pcs/workbench-pane.pper
@@ -2,5 +2,7 @@
     "TabSet1" : 3,
     "TabSet2" : 0,
     "TabZoom" : {
+        "MaximizedTab" : "Source",
+        "WidgetSize" : 502
     }
 }
\ No newline at end of file
diff --git a/.Rproj.user/441ADA46/sources/s-1DCD7B32/25D73910 b/.Rproj.user/441ADA46/sources/per/t/25D73910
similarity index 100%
rename from .Rproj.user/441ADA46/sources/s-1DCD7B32/25D73910
rename to .Rproj.user/441ADA46/sources/per/t/25D73910
diff --git a/.Rproj.user/441ADA46/sources/s-1DCD7B32/25D73910-contents b/.Rproj.user/441ADA46/sources/per/t/25D73910-contents
similarity index 100%
rename from .Rproj.user/441ADA46/sources/s-1DCD7B32/25D73910-contents
rename to .Rproj.user/441ADA46/sources/per/t/25D73910-contents
diff --git a/.Rproj.user/441ADA46/sources/s-1DCD7B32/245EA062-contents b/.Rproj.user/441ADA46/sources/s-1DCD7B32/245EA062-contents
deleted file mode 100644
index 4f27cd8..0000000
--- a/.Rproj.user/441ADA46/sources/s-1DCD7B32/245EA062-contents
+++ /dev/null
@@ -1,158 +0,0 @@
----
-#----ESSENTIALS----#
-title: 'Using `posterdown` to generate reproducible conference posters via RMarkdown > Knitr > Markdown > Pandoc > Latex > PDF workflow'
-author: "Author One^1^ Author Two^2^"
-affiliation: "^1^Department of Poster Layouts, University of Markdown; ^2^Deparment of Another Institution, Institution University"
-
-#----FONT STYLE----#
-font_size: "30pt" #sets '\normalsize' (sizes of the title and sections headings will adjust based on it)
-font_family: "courier" # choose from typical latex fonts (example: "palatino")
-
-#----COLOURS----#
-title_bgcol: "000000"  #Hex colour for background of poster title section (default is blue)
-poster_bgcol: "white" #colour of the poster main background
-title_textcol: "red" #colour of title text
-header_textcol: "red" #colour of the poster header titles
-cite_col: "green" #colour of ciation elements
-url_col: "cyan" #colour of url links
-link_col: "cyan" #colour of other links within the poster
-columnline_col: "blue" #colour 
-
-#----POSTER SIZE & COLUMN NUMBERS----#
-poster_height: "38in" # height in inches of poster
-poster_width: "45in" # width in inches of poster
-column_numbers: 3 # Number of columns that the poster has
-
-#----OTHER----#
-bibliography: MyLibrary # name of the .bib file used for referencing
-output: posterdown::posterdown_pdf
----
-
-```{r, include=FALSE}
-knitr::opts_chunk$set(echo = FALSE, results = 'asis',fig.height = 3.5, fig.width = 4.5, out.width = "100%", warning = FALSE, fig.align = 'center', message = FALSE, dev='cairo_pdf')
-```
-
-<!--
-Bellow you will find typical RMarkdown syntax which should fill in the columns for the poster from top to bottom left to right. The more information you have the more will be filled. Please let me know if you have feedback at brentthorne18@gmail.com or at github.com/brentthorne/posterdown
-
-ENJOY! XD
--->
-
-# Introduction
-
-Welcome to `posterdown` ! This is my attempt to provide a semi-smooth workflow for those who wish to take their `RMarkdown` skills to the conference world. Many creature comforts from `RMarkdown` are available in this package such as `Markdown` section notation, figure captioning, and even citations like this one [@holden_identifying_2012] The rest of this example poster will show how you can insert typical conference poster features into your own document. 
-
-# Study Site
-
-Here is a map made to show the study site using `ggplot2`, `ggspatial`, and `sf`. Lorem ipsum dolor sit amet, [@middleton_geological_nodate] consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Phasellus vestibulum lorem sed risus ultricies tristique nulla. Mauris vitae ultricies leo integer malesuada nunc vel risus commodo. Suspendisse potenti nullam ac tortor vitae. Enim nunc faucibus a pellentesque sit amet porttitor eget.  \vspace{15mm}
-
-```{r, fig.width=4.5, out.width="80%", fig.cap='This is a map of Canada, the ggspatial package is great for GIS folks in R!', cache=TRUE}
-library(ggplot2)
-library(ggspatial)
-library(ggthemes)
-library(sf)
-
-canada <- read_sf("data/Canada.geojson")
-
-
-ggplot() +
-  ggspatial::layer_spatial(canada, fill = "grey") +
-  ggspatial::annotation_north_arrow(location = "br", which_north = "true", style = north_arrow_nautical()) +
-  coord_sf() +
-  theme_solarized() +
-  NULL
-
-```
-
-
-# Objectives
-
-\large
-
-1. Easy to use reproducible poster design. 
-2. Integration with `RMarkdown`.
-3. Easy transition from `posterdown` to `thesisdown` or `rticles`
-
-\small
-
-# Methods
-
-This package uses the same workflow approach as the `RMarkdown` you know and love. Basically it goes from RMarkdown > Knitr > Markdown > Pandoc > Latex > PDF
-
-# Results
-
-Usually you want to have a nice table displaying some important results that you have calcualated. In posterdown this is as easy as using the `kable` table formatting you are probably use to as per typical `RMarkdown` formatting. I suggesting checking out the `kableExtra` package and its in depth documentation on customizing these tables found [here](https://haozhu233.github.io/kableExtra/awesome_table_in_pdf.pdf).
-
-```{r}
-library(kableExtra)
-library(ggplot2)
-
-data("iris")
-
-kable(iris[1:4,],align = "c", caption = "Tables are a breeze with Kable and Kable extra package!", booktabs = TRUE) %>% 
-  kable_styling(latex_options = "striped",full_width = TRUE, font_size = 25)
-
-```
-
-\vspace{1in}
-
-```{r, out.width='75%', fig.width=4, fig.height=3, fig.cap='A typical plot using ggplot using the classic iris dataset.'}
-
-library(ggplot2)
-library(ggthemes)
-
-ggplot(data = iris, aes(x = Sepal.Length, y = Sepal.Width, colour = Species)) +
-  geom_point() +
-  theme_fivethirtyeight() +
-  labs(x = "Sepal Length", y = "Sepeal Width") +
-  NULL
-
-```
-
-\vspace{1in}
-
-```{r, out.width='85%', fig.width=4.5, fig.height=4, fig.cap='Another typical plot using ggplot, this time with a different theme and r code chunk options for fig.width and fig.height.'}
-
-library(ggplot2)
-library(ggthemes)
-
-ggplot(data = iris, aes(x = Sepal.Length, y = Sepal.Width, colour = Species)) +
-  geom_point() +
-  theme_hc() +
-  labs(x = "Sepal Length", y = "Sepeal Width") +
-  NULL
-
-```
-
-\vspace{1in}
-
-```{r, out.width='80%', fig.width=4.5, fig.align='center', echo=TRUE, fig.height=5, fig.cap='Another figure showing how base R plots might look on this poster!'}
-
-# Here is some code for people
-# to look at and be in awe of!!!!
-library(ggplot2)
-library(ggthemes)
-
-ggplot(data=iris,
-       aes(x = Sepal.Width,
-           y = Sepal.Length,
-           colour = Species)) +
-  geom_point() +
-  theme_stata() +
-  NULL
-
-```
-
-
-# Next Steps
-
-There is still **A LOT** of work to do on this package which include (but are note limited to): 
-
-- Better softcoding for front end user options in YAML
-- Images in the title section for logo placement which is a common attribut to posters as far as I have come to know.
-- Figure out compatiability with `natbib` which wasn't working during the initial set up.
-- MUCH BETTER PACKAGE DOCUMENTATION. For example, there is nothing in the README...
-- Include References section only if initiated by the user like in RMarkdown.
-
-<!--- Here you can set the size of the citation text -->
-\small
diff --git a/.Rproj.user/441ADA46/sources/s-1DCD7B32/36A4DACA-contents b/.Rproj.user/441ADA46/sources/s-1DCD7B32/36A4DACA-contents
deleted file mode 100644
index 06f5bd7..0000000
--- a/.Rproj.user/441ADA46/sources/s-1DCD7B32/36A4DACA-contents
+++ /dev/null
@@ -1,22 +0,0 @@
-#' Posterdown PDF format (using 'memoir' document class)
-#'
-#' @inheritParams rmarkdown::pdf_document
-#' @param ... Additional arguments to \code{rmarkdown::pdf_document}
-#'
-#' @return R Markdown output format to pass to
-#'   \code{\link[rmarkdown:render]{render}}
-#'
-#' @examples
-#'
-#' \dontrun{
-#' library(rmarkdown)
-#' draft("MyArticle.Rmd", template = "posterdown_generic", package = "posterdown")
-#' }
-#'
-#' @export
-posterdown_pdf <- function(..., keep_tex = TRUE) {
-  inherit_pdf_document(...,
-                       keep_tex = keep_tex,
-                       template = find_resource("posterdown_pdf", "template.tex"),
-                       citation_package = "biblatex")
-}
diff --git a/.Rproj.user/441ADA46/sources/s-1DCD7B32/5AB6DA0E-contents b/.Rproj.user/441ADA46/sources/s-1DCD7B32/5AB6DA0E-contents
deleted file mode 100644
index e69de29..0000000
--- a/.Rproj.user/441ADA46/sources/s-1DCD7B32/5AB6DA0E-contents
+++ /dev/null
diff --git a/.Rproj.user/441ADA46/sources/s-1DCD7B32/DC9C14ED-contents b/.Rproj.user/441ADA46/sources/s-1DCD7B32/DC9C14ED-contents
deleted file mode 100644
index e6c1632..0000000
--- a/.Rproj.user/441ADA46/sources/s-1DCD7B32/DC9C14ED-contents
+++ /dev/null
@@ -1,175 +0,0 @@
-%brent's poster layout :)
-
-\documentclass[article,$font_size$,extrafontsizes]{memoir}
-
-%utf-8 seems to be important
-\usepackage[utf8]{inputenc}
-\usepackage[T1]{fontenc}
-\usepackage{multicol}
-\usepackage{graphicx}
-\usepackage{blindtext}
-\usepackage[svgnames,table]{xcolor}
-\usepackage[framemethod=tikz]{mdframed}
-\usepackage{color}
-\usepackage{geometry}
-\usepackage{adjmulticol}
-
-%For kable extra package :)
-\usepackage{booktabs}
-\usepackage{longtable}
-\usepackage{array}
-\usepackage{multirow}
-\usepackage{wrapfig}
-\usepackage{float}
-\usepackage{colortbl}
-\usepackage{pdflscape}
-\usepackage{pagecolor}
-\usepackage{tabu}
-\usepackage{threeparttable}
-\usepackage{threeparttablex}
-\usepackage[normalem]{ulem}
-\usepackage{makecell}
-
-\usepackage{hyperref}
-\hypersetup{
-    colorlinks=true,
-    linkcolor=$link_col$,
-    citecolor=$cite_col$,
-    filecolor=magenta,
-    urlcolor=$url_col$,
-}
-
-
-%For figure and table placement
-\usepackage{float}
-\floatplacement{figure}{H}
-\floatplacement{table}{H}
-
-%spacing between figure/ table and caption
-\setlength{\abovecaptionskip}{0.4in}
-\setlength{\belowcaptionskip}{0.2in}
-\captionnamefont{\footnotesize\sffamily\bfseries}
-\captiontitlefont{\footnotesize\sffamily}
-
-%define column options
-\setlength{\columnseprule}{1pt}
-\def\columnseprulecolor{\color{$columnline_col$}}
-\setsubsubsecheadstyle{\small\color{$header_textcol$}\textbf}% Set \section style
-\setsecheadstyle{\small\color{$header_textcol$}}
-\setsecnumformat{}
-\def\sectionmark#1{\markboth{#1}{#1}}
-
-%-----------------------------------------------------
-
-\thispagestyle{empty}
-\definecolor{light-gray}{gray}{0.9}
-
-%biblatex options
-\usepackage[sorting=none,backend=biber]{biblatex}
-\renewcommand*{\bibfont}{\tiny}
-\bibliography{$bibliography$}
-\defbibheading{bibliography}[\bibname]{%
-\section*{#1}%
-\markboth{#1}{#1}}
-\AtBeginDocument{%
-  \renewcommand{\bibname}{References}
-}
-
-%bring in the users information
-\author{$author$}
-\title{$title$}
-\counterwithout{section}{chapter}
-\makechapterstyle{mydefault}{
-\addtocounter{secnumdepth}{2}
-\setsecheadstyle{\Large\color{$header_textcol$}\textbf}
-\setsubsecheadstyle{\itshape}
-\setsubsubsecheadstyle{\itshape}
-}
-
-\chapterstyle{mydefault}
-
-%define column spacing
-\setlength\columnsep{1in}
-
-\setlength\parindent{1em}
-\setlength\parskip{1em}
-\setlength\hangparas{0}
-
-%spacing after section head title
-\setaftersecskip{0.3in}
-\setbeforesecskip{1in}
-\setlength\textfloatsep{0.3in}
-\setlength\floatsep{0.3in}
-\setlength\intextsep{0.3in}
-
-\setstocksize{$poster_height$}{$poster_width$}
-\settrimmedsize{\stockheight}{\stockwidth}{*}
-\settypeblocksize{$poster_height$}{$poster_width$}{*}
-\setlrmargins{*}{*}{1}
-\setulmarginsandblock{2.5cm}{*}{*}
-\setmarginnotes{0em}{0cm}{0cm}
-\setlength{\footskip}{0cm}
-\setlength{\footnotesep}{0cm}
-\setlength{\headheight}{0pt}
-\setlength{\headsep}{0pt}
-\setlength{\trimtop}{0pt}
-\setlength{\trimedge}{0pt}
-\setlength{\uppermargin}{0pt}
-\checkandfixthelayout
-
-\definecolor{myframecolour}{HTML}{$title_bgcol$}
-
-\mdfdefinestyle{brentsmdfstyle}{%
-  backgroundcolor=myframecolour,
-  linecolor= $columnline_col$,
-  topline=false,
-  leftline=false,
-  rightline=false,
-  linewidth=2mm,
-  settings={\definecolor{linkcolor}{RGB}{255,255,255}}}
-
-%Footnote to white
-\usepackage{footmisc}
-\def\footnotelayout{\centering\color{white}}
-
-% see https://stackoverflow.com/a/47122900
-$if(highlighting-macros)$
-$highlighting-macros$
-$endif$
-
-\usepackage{$font_family$}
-\renewcommand*\familydefault{\sfdefault}
-\newpagecolor{$poster_bgcol$}
-%begin the document
-\begin{document}
-
-\begin{mdframed}[style=brentsmdfstyle]
-%sets footnote to be white hopefully
-\renewcommand\footnoterule{}
-\renewcommand{\thempfootnote}{\footnotesize\color{red}{\arabic{mpfootnote}}}
-
-% group which adds title author and other infor
-% Used instead of \maketitle for better spacing options
-\begingroup
-  \centering
-  \color{$title_textcol$}
-\vspace{0.5in}
-  \Huge{$title$} \\[0.3in]
-  \color{cyan} \Large{$author$} \\[0.2in]
-  \color{white} \large{$affiliation$} \par
-  \vspace{0.2in}
-
-% end title section -------------------
-  \endgroup
-\end{mdframed}
-
-% Brgin body of poster
-\begin{adjmulticols*}{$column_numbers$}{10mm}{10mm}
-\normalsize{
-\color{black}
-$body$
-\printbibliography
-}
-\end{adjmulticols*}
-%end the poster
-\end{document}
diff --git a/.Rproj.user/441ADA46/sources/s-1DCD7B32/lock_file b/.Rproj.user/441ADA46/sources/s-1DCD7B32/lock_file
deleted file mode 100644
index e69de29..0000000
--- a/.Rproj.user/441ADA46/sources/s-1DCD7B32/lock_file
+++ /dev/null
