diff --git a/.Rproj.user/5271889B/pcs/source-pane.pper b/.Rproj.user/5271889B/pcs/source-pane.pper
index 1743e40..9efb51b 100644
--- a/.Rproj.user/5271889B/pcs/source-pane.pper
+++ b/.Rproj.user/5271889B/pcs/source-pane.pper
@@ -1,3 +1,3 @@
 {
-    "activeTab" : 0
+    "activeTab" : -1
 }
\ No newline at end of file
diff --git a/.Rproj.user/5271889B/pcs/windowlayoutstate.pper b/.Rproj.user/5271889B/pcs/windowlayoutstate.pper
index 39209c8..dd78fba 100644
--- a/.Rproj.user/5271889B/pcs/windowlayoutstate.pper
+++ b/.Rproj.user/5271889B/pcs/windowlayoutstate.pper
@@ -2,7 +2,7 @@
     "left" : {
         "panelheight" : 778,
         "splitterpos" : 323,
-        "topwindowstate" : "NORMAL",
+        "topwindowstate" : "HIDE",
         "windowheight" : 816
     },
     "right" : {
diff --git a/.Rproj.user/5271889B/sources/s-49FF7C21/1ED1315-contents b/.Rproj.user/5271889B/sources/s-49FF7C21/1ED1315-contents
deleted file mode 100644
index e91a6a4..0000000
--- a/.Rproj.user/5271889B/sources/s-49FF7C21/1ED1315-contents
+++ /dev/null
@@ -1,18 +0,0 @@
-language: r
-cache:
-  packages: true
-  directories:
-    - $HOME/.TinyTeX
-latex: false
-
-env:
-  global:
-    - _R_CHECK_TESTS_NLINES_=0 PATH=$HOME/bin:$PATH
-
-addons:
-  apt:
-    packages:
-    - ghostscript
-
-before_install:
-  - wget -qO- https://github.com/yihui/tinytex/raw/master/tools/download-travis-linux.sh | sh
diff --git a/.Rproj.user/5271889B/sources/s-49FF7C21/623B11B8-contents b/.Rproj.user/5271889B/sources/s-49FF7C21/623B11B8-contents
deleted file mode 100644
index 0322602..0000000
--- a/.Rproj.user/5271889B/sources/s-49FF7C21/623B11B8-contents
+++ /dev/null
@@ -1,14 +0,0 @@
-Package: posterdown
-Title: Generates PDF conference posters using R Markdown.
-Version: 0.1.0
-Author: Brent Thorne
-Description: Posterdown expands on RMarkdown to generate PDF conference posters.
-Maintainer: Brent Thorne <brent.thorne18@gmail.com>
-License: MIT + file LICENSE
-Encoding: UTF-8
-LazyData: true
-URL: https://github.com/brentthorne/posterdown
-BugReports: https://github.com/brentthorne/posterdown/issues
-Imports: utils, rmarkdown, knitr, yaml, tinytex, xfun, ggplot2, rticles, kableExtra, Cairo, ggthemes, ggspatial 
-SystemRequirements: GNU make
-RoxygenNote: 6.1.1
diff --git a/.Rproj.user/5271889B/sources/s-49FF7C21/76D8725-contents b/.Rproj.user/5271889B/sources/s-49FF7C21/76D8725-contents
deleted file mode 100644
index 07115ef..0000000
--- a/.Rproj.user/5271889B/sources/s-49FF7C21/76D8725-contents
+++ /dev/null
@@ -1,126 +0,0 @@
----
-title: 'Using \color{Red} `posterdown` \color{White} to generate reproducible conference posters via RMarkdown > Knitr > Markdown > Pandoc > Latex > PDF workflow as well as long titles...'
-author: "Brent Thorne"
-bibliography: MyLibrary
-output: posterdown::posterdown_memoir
----
-
-```{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')
-```
-
-# 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 frim `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 `posterndown` 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
-
-```{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 = T) %>% 
-  kable_styling(latex_options = "striped")
-
-```
-
-\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 such as `posterwidth: 45in`.
-- 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.
-
-\small
diff --git a/.Rproj.user/5271889B/sources/s-49FF7C21/90E44B40-contents b/.Rproj.user/5271889B/sources/s-49FF7C21/90E44B40-contents
deleted file mode 100644
index c2ebc68..0000000
--- a/.Rproj.user/5271889B/sources/s-49FF7C21/90E44B40-contents
+++ /dev/null
@@ -1,4 +0,0 @@
-name: Posterdown Memoir L38 X W45 PDF
-description: >
- Template for creating R Markdown based PDF via Latex and Memoir
-create_dir: true
diff --git a/.Rproj.user/5271889B/sources/s-49FF7C21/950DD430-contents b/.Rproj.user/5271889B/sources/s-49FF7C21/950DD430-contents
deleted file mode 100644
index 9f6c8ae..0000000
--- a/.Rproj.user/5271889B/sources/s-49FF7C21/950DD430-contents
+++ /dev/null
@@ -1,173 +0,0 @@
-%brent's poster layout :)
-
-\documentclass[article,30pt,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{tabu}
-\usepackage{threeparttable}
-\usepackage{threeparttablex}
-\usepackage[normalem]{ulem}
-\usepackage{makecell}
-
-\usepackage{hyperref}
-\hypersetup{
-    colorlinks=true,
-    linkcolor=blue,
-    citecolor=red,
-    filecolor=magenta,
-    urlcolor=cyan,
-}
-
-
-%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{red}}
-\setsubsubsecheadstyle{\small\color{red}\textbf}% Set \section style
-\setsecheadstyle{\small\color{red}}
-\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{red}\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{38in}{45in}
-\settrimmedsize{\stockheight}{\stockwidth}{*}
-\settypeblocksize{38in}{45in}{*}
-\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}{00004d}
-
-\mdfdefinestyle{brentsmdfstyle}{%
-  backgroundcolor=myframecolour,
-  linecolor=Red,
-  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{palatino}
-\renewcommand*\familydefault{\sfdefault}
-
-%begin the document
-\begin{document}
-
-\begin{mdframed}[style=brentsmdfstyle]
-%sets footnote to be white hoprefully
-\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{White}
-\vspace{0.5in}
-  \Huge{\textbf{$title$}} \\[0.3in]
-  \color{cyan} \Large{\textbf{$author$}} \par
-  \vspace{0.2in}
-
-% end title section -------------------
-  \endgroup
-\end{mdframed}
-
-% Brgin body of poster
-\begin{adjmulticols*}{4}{10mm}{10mm}
-\small{
-\color{black}
-$body$
-\printbibliography
-}
-\end{adjmulticols*}
-%end the poster
-\end{document}
diff --git a/.Rproj.user/5271889B/sources/s-49FF7C21/E984FFD8-contents b/.Rproj.user/5271889B/sources/s-49FF7C21/E984FFD8-contents
deleted file mode 100644
index 448b9ce..0000000
--- a/.Rproj.user/5271889B/sources/s-49FF7C21/E984FFD8-contents
+++ /dev/null
@@ -1,8 +0,0 @@
-# Generated by roxygen2: do not edit by hand
-
-export(posterdown_pdf)
-import(devtools)
-import(dplyr)
-import(ggplot2)
-import(knitr)
-import(rmarkdown)
diff --git a/.Rproj.user/5271889B/sources/s-49FF7C21/lock_file b/.Rproj.user/5271889B/sources/s-49FF7C21/lock_file
deleted file mode 100644
index e69de29..0000000
--- a/.Rproj.user/5271889B/sources/s-49FF7C21/lock_file
+++ /dev/null
