diff --git a/.Rproj.user/441ADA46/pcs/files-pane.pper b/.Rproj.user/441ADA46/pcs/files-pane.pper
index 60b1f16..c463a71 100644
--- a/.Rproj.user/441ADA46/pcs/files-pane.pper
+++ b/.Rproj.user/441ADA46/pcs/files-pane.pper
@@ -1,5 +1,5 @@
 {
-    "path" : "~/Documents/GitHub/posterdown",
+    "path" : "~/Documents/GitHub/posterdown/inst/rmarkdown/templates/posterdown_memoir/resources",
     "sortOrder" : [
         {
             "ascending" : false,
diff --git a/.Rproj.user/441ADA46/pcs/source-pane.pper b/.Rproj.user/441ADA46/pcs/source-pane.pper
index 70829f6..9efb51b 100644
--- a/.Rproj.user/441ADA46/pcs/source-pane.pper
+++ b/.Rproj.user/441ADA46/pcs/source-pane.pper
@@ -1,3 +1,3 @@
 {
-    "activeTab" : 1
+    "activeTab" : -1
 }
\ No newline at end of file
diff --git a/.Rproj.user/441ADA46/pcs/windowlayoutstate.pper b/.Rproj.user/441ADA46/pcs/windowlayoutstate.pper
index e9b88cf..e3c0ef2 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" : "HIDE",
         "windowheight" : 828
     },
     "right" : {
diff --git a/.Rproj.user/441ADA46/persistent-state b/.Rproj.user/441ADA46/persistent-state
index 01d4643..997bb05 100644
--- a/.Rproj.user/441ADA46/persistent-state
+++ b/.Rproj.user/441ADA46/persistent-state
@@ -1,8 +1,8 @@
 build-last-errors="[]"
 build-last-errors-base-dir="~/Documents/GitHub/posterdown/"
-build-last-outputs="[{\"output\":\"==> R CMD INSTALL --preclean --no-multiarch --with-keep.source posterdown\\n\\n\",\"type\":0},{\"output\":\"* installing to library ‘/home/thornux/R/x86_64-pc-linux-gnu-library/3.5’\\n\",\"type\":1},{\"output\":\"* installing *source* package ‘posterdown’ ...\\n\",\"type\":1},{\"output\":\"** R\\n\",\"type\":1},{\"output\":\"** inst\\n\",\"type\":1},{\"output\":\"** byte-compile and prepare package for lazy loading\\n\",\"type\":1},{\"output\":\"\",\"type\":1},{\"output\":\"** help\\n\",\"type\":1},{\"output\":\"*** installing help indices\\n\",\"type\":1},{\"output\":\"\",\"type\":1},{\"output\":\"** building package indices\\n\",\"type\":1},{\"output\":\"** testing if installed package can be loaded\\n\",\"type\":1},{\"output\":\"\",\"type\":1},{\"output\":\"* DONE (posterdown)\\n\",\"type\":1},{\"output\":\"\",\"type\":1}]"
+build-last-outputs="[{\"output\":\"==> R CMD INSTALL --preclean --no-multiarch --with-keep.source posterdown\\n\\n\",\"type\":0},{\"output\":\"* installing to library ‘/home/thornux/R/x86_64-pc-linux-gnu-library/3.5’\\n\",\"type\":1},{\"output\":\"\",\"type\":1},{\"output\":\"* installing *source* package ‘posterdown’ ...\\n\",\"type\":1},{\"output\":\"** R\\n\",\"type\":1},{\"output\":\"** inst\\n\",\"type\":1},{\"output\":\"** byte-compile and prepare package for lazy loading\\n\",\"type\":1},{\"output\":\"\",\"type\":1},{\"output\":\"** help\\n\",\"type\":1},{\"output\":\"*** installing help indices\\n\",\"type\":1},{\"output\":\"** building package indices\\n\",\"type\":1},{\"output\":\"** testing if installed package can be loaded\\n\",\"type\":1},{\"output\":\"\",\"type\":1},{\"output\":\"* DONE (posterdown)\\n\",\"type\":1},{\"output\":\"\",\"type\":1}]"
 compile_pdf_state="{\"errors\":[],\"output\":\"\",\"running\":false,\"tab_visible\":false,\"target_file\":\"\"}"
 files.monitored-path=""
 find-in-files-state="{\"handle\":\"\",\"input\":\"\",\"path\":\"\",\"regex\":true,\"results\":{\"file\":[],\"line\":[],\"lineValue\":[],\"matchOff\":[],\"matchOn\":[]},\"running\":false}"
-imageDirtyState="1"
-saveActionState="-1"
+imageDirtyState="0"
+saveActionState="0"
diff --git a/.Rproj.user/441ADA46/sources/prop/4B35A6C8 b/.Rproj.user/441ADA46/sources/prop/4B35A6C8
index 0210e2b..60df37c 100644
--- a/.Rproj.user/441ADA46/sources/prop/4B35A6C8
+++ b/.Rproj.user/441ADA46/sources/prop/4B35A6C8
@@ -1,4 +1,4 @@
 {
-    "cursorPosition" : "8,31",
+    "cursorPosition" : "10,0",
     "scrollLine" : "0"
 }
\ No newline at end of file
diff --git a/.Rproj.user/441ADA46/sources/prop/F60D855F b/.Rproj.user/441ADA46/sources/prop/F60D855F
index 7a73a41..306b2bb 100644
--- a/.Rproj.user/441ADA46/sources/prop/F60D855F
+++ b/.Rproj.user/441ADA46/sources/prop/F60D855F
@@ -1,2 +1,4 @@
 {
+    "cursorPosition" : "0,0",
+    "scrollLine" : "0"
 }
\ No newline at end of file
diff --git a/.Rproj.user/441ADA46/sources/prop/FB6BF66 b/.Rproj.user/441ADA46/sources/prop/FB6BF66
index 4040926..5468b10 100644
--- a/.Rproj.user/441ADA46/sources/prop/FB6BF66
+++ b/.Rproj.user/441ADA46/sources/prop/FB6BF66
@@ -1,4 +1,4 @@
 {
-    "cursorPosition" : "2,0",
+    "cursorPosition" : "8,0",
     "scrollLine" : "0"
 }
\ No newline at end of file
diff --git a/.Rproj.user/441ADA46/sources/s-D8AE56D0/3F768200 b/.Rproj.user/441ADA46/sources/s-D8AE56D0/3F768200
deleted file mode 100644
index 4b0b9d8..0000000
--- a/.Rproj.user/441ADA46/sources/s-D8AE56D0/3F768200
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-    "collab_server" : "",
-    "contents" : "",
-    "created" : 1544070205595.000,
-    "dirty" : false,
-    "encoding" : "UTF-8",
-    "folds" : "",
-    "hash" : "3799213893",
-    "id" : "3F768200",
-    "lastKnownWriteTime" : 1544050143,
-    "last_content_update" : 1544050143,
-    "path" : "~/Documents/GitHub/posterdown/.travis.yml",
-    "project_path" : ".travis.yml",
-    "properties" : {
-    },
-    "relative_order" : 3,
-    "source_on_save" : false,
-    "source_window" : "",
-    "type" : "yaml"
-}
\ No newline at end of file
diff --git a/.Rproj.user/441ADA46/sources/s-D8AE56D0/3F768200-contents b/.Rproj.user/441ADA46/sources/s-D8AE56D0/3F768200-contents
deleted file mode 100644
index e91a6a4..0000000
--- a/.Rproj.user/441ADA46/sources/s-D8AE56D0/3F768200-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/441ADA46/sources/s-D8AE56D0/665BBD9E b/.Rproj.user/441ADA46/sources/s-D8AE56D0/665BBD9E
deleted file mode 100644
index 93c04fa..0000000
--- a/.Rproj.user/441ADA46/sources/s-D8AE56D0/665BBD9E
+++ /dev/null
@@ -1,22 +0,0 @@
-{
-    "collab_server" : "",
-    "contents" : "",
-    "created" : 1544064943311.000,
-    "dirty" : false,
-    "encoding" : "UTF-8",
-    "folds" : "",
-    "hash" : "4107327377",
-    "id" : "665BBD9E",
-    "lastKnownWriteTime" : 1544067104,
-    "last_content_update" : 1544070109620,
-    "path" : "~/Documents/GitHub/posterdown/inst/rmarkdown/templates/posterdown_memoir/skeleton/skeleton.Rmd",
-    "project_path" : "inst/rmarkdown/templates/posterdown_memoir/skeleton/skeleton.Rmd",
-    "properties" : {
-        "cursorPosition" : "8,31",
-        "scrollLine" : "0"
-    },
-    "relative_order" : 1,
-    "source_on_save" : false,
-    "source_window" : "",
-    "type" : "r_markdown"
-}
\ No newline at end of file
diff --git a/.Rproj.user/441ADA46/sources/s-D8AE56D0/665BBD9E-contents b/.Rproj.user/441ADA46/sources/s-D8AE56D0/665BBD9E-contents
deleted file mode 100644
index 07115ef..0000000
--- a/.Rproj.user/441ADA46/sources/s-D8AE56D0/665BBD9E-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/441ADA46/sources/s-D8AE56D0/7134F3CC b/.Rproj.user/441ADA46/sources/s-D8AE56D0/7134F3CC
deleted file mode 100644
index 244b7ae..0000000
--- a/.Rproj.user/441ADA46/sources/s-D8AE56D0/7134F3CC
+++ /dev/null
@@ -1,22 +0,0 @@
-{
-    "collab_server" : "",
-    "contents" : "",
-    "created" : 1544070130440.000,
-    "dirty" : false,
-    "encoding" : "UTF-8",
-    "folds" : "",
-    "hash" : "339265433",
-    "id" : "7134F3CC",
-    "lastKnownWriteTime" : 1544070190,
-    "last_content_update" : 1544070190535,
-    "path" : "~/Documents/GitHub/posterdown/NAMESPACE",
-    "project_path" : "NAMESPACE",
-    "properties" : {
-        "cursorPosition" : "2,0",
-        "scrollLine" : "0"
-    },
-    "relative_order" : 2,
-    "source_on_save" : false,
-    "source_window" : "",
-    "type" : "r_namespace"
-}
\ No newline at end of file
diff --git a/.Rproj.user/441ADA46/sources/s-D8AE56D0/7134F3CC-contents b/.Rproj.user/441ADA46/sources/s-D8AE56D0/7134F3CC-contents
deleted file mode 100644
index 462c2e1..0000000
--- a/.Rproj.user/441ADA46/sources/s-D8AE56D0/7134F3CC-contents
+++ /dev/null
@@ -1,8 +0,0 @@
-# Generated by roxygen2: do not edit by hand
-
-export(posterdown_memoir)
-import(devtools)
-import(dplyr)
-import(ggplot2)
-import(knitr)
-import(rmarkdown)
diff --git a/.Rproj.user/441ADA46/sources/s-D8AE56D0/lock_file b/.Rproj.user/441ADA46/sources/s-D8AE56D0/lock_file
deleted file mode 100644
index e69de29..0000000
--- a/.Rproj.user/441ADA46/sources/s-D8AE56D0/lock_file
+++ /dev/null
