diff --git a/.Rproj.user/5271889B/sources/per/t/9AEA0CD b/.Rproj.user/5271889B/sources/per/t/9AEA0CD
deleted file mode 100644
index f85750b..0000000
--- a/.Rproj.user/5271889B/sources/per/t/9AEA0CD
+++ /dev/null
@@ -1,22 +0,0 @@
-{
-    "collab_server" : "",
-    "contents" : "",
-    "created" : 1544019866664.000,
-    "dirty" : false,
-    "encoding" : "UTF-8",
-    "folds" : "",
-    "hash" : "700726814",
-    "id" : "9AEA0CD",
-    "lastKnownWriteTime" : 1544043824,
-    "last_content_update" : 1544043824135,
-    "path" : "~/GitHub/posterdown/inst/rmarkdown/templates/posterdown_memoir/resources/template.tex",
-    "project_path" : "inst/rmarkdown/templates/posterdown_memoir/resources/template.tex",
-    "properties" : {
-        "cursorPosition" : "109,46",
-        "scrollLine" : "92"
-    },
-    "relative_order" : 1,
-    "source_on_save" : false,
-    "source_window" : "",
-    "type" : "tex"
-}
\ No newline at end of file
diff --git a/.Rproj.user/5271889B/sources/per/t/9AEA0CD-contents b/.Rproj.user/5271889B/sources/per/t/9AEA0CD-contents
deleted file mode 100644
index e1f6331..0000000
--- a/.Rproj.user/5271889B/sources/per/t/9AEA0CD-contents
+++ /dev/null
@@ -1,133 +0,0 @@
-%brent's poster layout :)
-
-\documentclass[article,30pt,extrafontsizes]{memoir}
-
-%utf-8 seems to be important
-\usepackage[utf8]{inputenc}
-\usepackage[T1]{fontenc}
-\usepackage{palatino}
-\usepackage{multicol}
-\usepackage{graphicx}
-\usepackage{blindtext}
-\usepackage[svgnames]{xcolor}
-\usepackage[framemethod=tikz]{mdframed}
-\usepackage{color}
-\usepackage{geometry}
-\usepackage{adjmulticol}
-
-
-%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.1in}
-\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}
-
-
-
-\usepackage[style=alphabetic,backend=biber]{biblatex}
-\renewcommand*{\bibfont}{\tiny}
-
-\bibliography{$bibliography$}
-\author{$author$}
-\title{$title$}
-\counterwithout{section}{chapter}
-\makechapterstyle{mydefault}{
-\addtocounter{secnumdepth}{2}
-\setsecheadstyle{\Large\color{red}\textbf}
-\setsubsecheadstyle{\itshape}
-\setsubsubsecheadstyle{\itshape}
-}
-
-\chapterstyle{mydefault}
-
-\defbibheading{bibliography}[\bibname]{%
-\section*{#1}%
-\markboth{#1}{#1}}
-
-
-\AtBeginDocument{%
-  \renewcommand{\bibname}{References}
-}
-
-
-%define column spacing
-\setlength\columnsep{1in}
-
-\setlength\parindent{0em}
-\setlength\parskip{1em}
-\setlength\hangparas{0}
-
-%spacing after section head title
-\setaftersecskip{0.3in}
-\setbeforesecskip{0.5in}
-\setlength\textfloatsep{0.1in}
-\setlength\floatsep{0.1in}
-\setlength\intextsep{0.1in}
-
-\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}
-
-% see https://stackoverflow.com/a/47122900
-$if(highlighting-macros)$
-$highlighting-macros$
-$endif$
-
-%begin the document
-\begin{document}
-
-\begin{mdframed}[backgroundcolor=myframecolour,linecolor=Red,topline=false,leftline=false,rightline=false,linewidth=2mm]
-
-% group which adds title author and other infor
-% Used instead of \maketitle for better spacing options
-\begingroup
-  \centering
-  \color{White}
-  \huge\textbf{$title$}\\[0.3in]
-  \Large $author$ \par
-\vspace{1.2in}
-% end title section -------------------
-  \endgroup
-\end{mdframed}
-
-% Brgin body of poster
-\color{black}
-\begin{adjmulticols*}{3}{10mm}{10mm}
-\small{
-$body$
-\printbibliography
-}
-\end{adjmulticols*}
-%end the poster
-\end{document}
diff --git a/.Rproj.user/5271889B/sources/per/t/AB8556D6-contents b/.Rproj.user/5271889B/sources/per/t/AB8556D6-contents
deleted file mode 100644
index d18cc12..0000000
--- a/.Rproj.user/5271889B/sources/per/t/AB8556D6-contents
+++ /dev/null
@@ -1,124 +0,0 @@
----
-title: 'Identifying relationships among catchment land cover characteristics, active layer properties and lake hydroecology in Old Crow Flats, Yukon, Canada'
-author: "Brent Thorne"
-bibliography: MyLibrary
-output: posterdown::posterdown_memoir
----
-
-```{r, include=FALSE}
-knitr::opts_chunk$set(echo = FALSE, results = 'asis', fig.height = 3, fig.width = 3, warning = FALSE, fig.align = 'center', message = FALSE, dev='cairo_pdf')
-```
-
-# Introduction
-
-Lorem ipsum dolor sit amet, [@holden_identifying_2012] 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. 
-
-# 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. 
-
-```{r, fig.width=3.5, out.width="50%", fig.cap='This is a map of Canada, projected using the NAD 83 UTM Zone 7 Datum.', cache=TRUE}
-library(ggplot2)
-library(ggspatial)
-library(ggthemes)
-library(sf)
-
-canada <- read_sf("data/Canada.geojson")
-
-
-ggplot() +
-  ggspatial::layer_spatial(canada, fill = "grey") +
-  coord_sf() +
-  theme_solarized() +
-  NULL
-
-```
-
-
-# Objectives
-
-\large
-
-1. Here is my first obective. 
-2. Here is my second objective. 
-3. Finally, my third objectives.
-
-\small
-
-# Methods
-
-Elementum facilisis leo vel fringilla est ullamcorper eget nulla. Vitae congue eu consequat ac felis donec et. Morbi tincidunt ornare massa eget. Iaculis nunc sed augue lacus viverra vitae congue eu. Donec massa sapien faucibus et molestie. Neque egestas congue quisque egestas diam. Lectus quam id leo in vitae turpis massa. Sodales ut etiam sit amet. Posuere lorem ipsum dolor sit amet consectetur. Ullamcorper dignissim cras tincidunt lobortis feugiat vivamus. Amet commodo nulla facilisi nullam vehicula ipsum. Magna ac placerat vestibulum lectus mauris ultrices eros. Sodales ut eu sem integer vitae justo eget magna. Malesuada bibendum arcu vitae elementum.
-
-# Results
-
-```{r}
-library(kableExtra)
-library(ggplot2)
-
-data("iris")
-
-kable(iris[1:4,], caption = "Hopefully this works without much of a headache!") %>% 
-  kable_styling()
-
-```
-
-```{r, out.width='60%', fig.width=4, fig.height=3, fig.cap='A typical plot using ggplot.'}
-
-library(ggplot2)
-library(ggthemes)
-
-ggplot(data = iris, aes(x = Sepal.Length, y = Sepal.Width, colour = Species)) +
-  geom_point() +
-  theme_tufte() +
-  labs(x = "Sepal Length", y = "Sepeal Width") +
-  NULL
-
-```
-
-
-```{r, out.width='50%',fig.width=3.5, fig.height=3, fig.align='center', fig.cap='A boxplot example.'}
-
-library(ggthemes)
-library(ggplot2)
-
-ggplot(data = iris, aes(x = Species, y = Sepal.Length, colour = Species)) +
-  geom_boxplot(show.legend = FALSE) +
-  theme_tufte() +
-  labs(x = "Sepal Length", y = "Sepeal Width") +
-  NULL
-
-```
-
-
-Pellentesque habitant morbi tristique senectus et netus. Magnis dis parturient montes nascetur ridiculus mus mauris vitae ultricies. Nibh nisl condimentum id venenatis. Lorem ipsum dolor sit amet consectetur adipiscing elit duis. Eget aliquet nibh praesent tristique magna sit amet purus. Orci phasellus egestas tellus rutrum. Mauris cursus mattis molestie a. Amet cursus sit amet dictum sit. Tellus id interdum velit laoreet. Tortor at risus viverra adipiscing. Ullamcorper malesuada proin libero nunc. Elit ullamcorper dignissim cras tincidunt lobortis feugiat vivamus. Eget dolor morbi non arcu risus quis. Pulvinar pellentesque habitant morbi tristique senectus.
-
-
-
-```{r, out.width='50%',fig.width=3.5, fig.height=3, fig.align='center', fig.cap='A jitter plot example.'}
-
-library(ggthemes)
-library(ggplot2)
-
-ggplot(data = iris, aes(x = Species, y = Sepal.Length, colour = Species)) +
-  geom_jitter(show.legend = FALSE) +
-  theme_tufte() +
-  labs(x = "Sepal Length", y = "Sepeal Width") +
-  NULL
-
-```
-
-Pellentesque habitant morbi tristique senectus et netus. Magnis dis parturient montes nascetur ridiculus mus mauris vitae ultricies. Nibh nisl condimentum id venenatis. Lorem ipsum dolor sit amet consectetur adipiscing elit duis. Eget aliquet nibh praesent tristique magna sit amet purus. Orci phasellus egestas tellus rutrum. Mauris cursus mattis molestie a. Amet cursus sit amet dictum sit. Tellus id interdum velit laoreet. Tortor at risus viverra adipiscing. Ullamcorper malesuada proin libero nunc. Elit ullamcorper dignissim cras tincidunt lobortis feugiat vivamus. Eget dolor morbi non arcu risus quis. Pulvinar pellentesque habitant morbi tristique senectus.
-
-```{r, out.width='65%', fig.align='center', fig.height=5, fig.cap='Another figure showing how base R plots might look on this poster!'}
-par(mfrow=c(2,1), mar=c(0.2,0.2,0.2,0.2),mai=c(0.2,0.2,0.2,0.2))
-plot(rnorm(20))
-plot(cars)
-
-```
-
-More text now here Pellentesque habitant morbi tristique senectus et netus. Magnis dis parturient montes nascetur ridiculus mus mauris vitae ultricies. Nibh nisl condimentum id venenatis. Lorem ipsum dolor sit amet consectetur adipiscing elit duis. Eget aliquet nibh praesent tristique magna sit amet purus. Orci phasellus egestas tellus rutrum. Mauris cursus mattis molestie a. Amet cursus sit amet dictum sit. Tellus id interdum velit laoreet. Tortor at risus viverra adipiscing. Ullamcorper malesuada proin libero nunc. Elit ullamcorper dignissim cras tincidunt lobortis feugiat vivamus. Eget dolor morbi non arcu risus quis. Pulvinar pellentesque habitant morbi tristique senectus.
-
-# Next Steps
-
-Pellentesque habitant morbi tristique senectus et netus. Magnis dis parturient montes nascetur ridiculus mus mauris vitae ultricies. Nibh nisl condimentum id venenatis. Lorem ipsum dolor sit amet consectetur adipiscing elit duis. Eget aliquet nibh praesent tristique magna sit amet purus. Orci phasellus egestas tellus rutrum. Mauris cursus mattis molestie a. Amet cursus sit amet dictum sit. Tellus id interdum velit laoreet. Tortor at risus viverra adipiscing. Ullamcorper malesuada proin libero nunc. Elit ullamcorper dignissim cras tincidunt lobortis feugiat vivamus. Eget dolor morbi non arcu risus quis. Pulvinar pellentesque habitant morbi tristique senectus.
-
diff --git a/.Rproj.user/5271889B/sources/prop/65543ACF b/.Rproj.user/5271889B/sources/prop/65543ACF
index 89fb67a..ebd0798 100644
--- a/.Rproj.user/5271889B/sources/prop/65543ACF
+++ b/.Rproj.user/5271889B/sources/prop/65543ACF
@@ -1,4 +1,4 @@
 {
-    "cursorPosition" : "5,7",
+    "cursorPosition" : "1,31",
     "scrollLine" : "0"
 }
\ No newline at end of file
diff --git a/.Rproj.user/5271889B/sources/prop/98ACF786 b/.Rproj.user/5271889B/sources/prop/98ACF786
index 5468b10..c925790 100644
--- a/.Rproj.user/5271889B/sources/prop/98ACF786
+++ b/.Rproj.user/5271889B/sources/prop/98ACF786
@@ -1,4 +1,4 @@
 {
-    "cursorPosition" : "8,0",
+    "cursorPosition" : "7,0",
     "scrollLine" : "0"
 }
\ No newline at end of file
diff --git a/.Rproj.user/5271889B/sources/prop/FA5E3F8 b/.Rproj.user/5271889B/sources/prop/FA5E3F8
index 2d56b28..3c4eb07 100644
--- a/.Rproj.user/5271889B/sources/prop/FA5E3F8
+++ b/.Rproj.user/5271889B/sources/prop/FA5E3F8
@@ -1,4 +1,4 @@
 {
-    "cursorPosition" : "13,54",
+    "cursorPosition" : "4,37",
     "scrollLine" : "0"
 }
\ No newline at end of file
diff --git a/.Rproj.user/5271889B/sources/prop/FDA71E49 b/.Rproj.user/5271889B/sources/prop/FDA71E49
index 34c2f90..106fdb4 100644
--- a/.Rproj.user/5271889B/sources/prop/FDA71E49
+++ b/.Rproj.user/5271889B/sources/prop/FDA71E49
@@ -1,4 +1,4 @@
 {
-    "cursorPosition" : "109,46",
-    "scrollLine" : "92"
+    "cursorPosition" : "109,29",
+    "scrollLine" : "0"
 }
\ No newline at end of file
diff --git a/.Rproj.user/5271889B/sources/s-602A7A2F/7E40498D b/.Rproj.user/5271889B/sources/s-602A7A2F/7E40498D
new file mode 100644
index 0000000..05a8568
--- /dev/null
+++ b/.Rproj.user/5271889B/sources/s-602A7A2F/7E40498D
@@ -0,0 +1,22 @@
+{
+    "collab_server" : "",
+    "contents" : "",
+    "created" : 1544106985265.000,
+    "dirty" : false,
+    "encoding" : "UTF-8",
+    "folds" : "",
+    "hash" : "0",
+    "id" : "7E40498D",
+    "lastKnownWriteTime" : 1544107011,
+    "last_content_update" : 1544107011,
+    "path" : "~/GitHub/posterdown/NAMESPACE",
+    "project_path" : "NAMESPACE",
+    "properties" : {
+        "cursorPosition" : "7,0",
+        "scrollLine" : "0"
+    },
+    "relative_order" : 3,
+    "source_on_save" : false,
+    "source_window" : "",
+    "type" : "r_namespace"
+}
\ No newline at end of file
diff --git a/.Rproj.user/5271889B/sources/s-602A7A2F/7E40498D-contents b/.Rproj.user/5271889B/sources/s-602A7A2F/7E40498D-contents
new file mode 100644
index 0000000..d1d9666
--- /dev/null
+++ b/.Rproj.user/5271889B/sources/s-602A7A2F/7E40498D-contents
@@ -0,0 +1,7 @@
+# Generated by roxygen2: do not edit by hand
+
+import(devtools)
+import(dplyr)
+import(ggplot2)
+import(knitr)
+import(rmarkdown)
diff --git a/.Rproj.user/5271889B/sources/per/t/AB8556D6 b/.Rproj.user/5271889B/sources/s-602A7A2F/BEEEC247
similarity index 65%
rename from .Rproj.user/5271889B/sources/per/t/AB8556D6
rename to .Rproj.user/5271889B/sources/s-602A7A2F/BEEEC247
index 9832b5a..553ad77 100644
--- a/.Rproj.user/5271889B/sources/per/t/AB8556D6
+++ b/.Rproj.user/5271889B/sources/s-602A7A2F/BEEEC247
@@ -1,21 +1,21 @@
 {
     "collab_server" : "",
     "contents" : "",
-    "created" : 1544019872391.000,
+    "created" : 1544106730829.000,
     "dirty" : false,
     "encoding" : "UTF-8",
     "folds" : "",
-    "hash" : "4207451385",
-    "id" : "AB8556D6",
-    "lastKnownWriteTime" : 1544041727,
-    "last_content_update" : 1544041727783,
+    "hash" : "0",
+    "id" : "BEEEC247",
+    "lastKnownWriteTime" : 1544106697,
+    "last_content_update" : 1544106697,
     "path" : "~/GitHub/posterdown/inst/rmarkdown/templates/posterdown_memoir/skeleton/skeleton.Rmd",
     "project_path" : "inst/rmarkdown/templates/posterdown_memoir/skeleton/skeleton.Rmd",
     "properties" : {
-        "cursorPosition" : "13,54",
+        "cursorPosition" : "4,37",
         "scrollLine" : "0"
     },
-    "relative_order" : 2,
+    "relative_order" : 1,
     "source_on_save" : false,
     "source_window" : "",
     "type" : "r_markdown"
diff --git a/.Rproj.user/5271889B/sources/s-602A7A2F/BEEEC247-contents b/.Rproj.user/5271889B/sources/s-602A7A2F/BEEEC247-contents
new file mode 100644
index 0000000..07115ef
--- /dev/null
+++ b/.Rproj.user/5271889B/sources/s-602A7A2F/BEEEC247-contents
@@ -0,0 +1,126 @@
+---
+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-602A7A2F/FA377D4B b/.Rproj.user/5271889B/sources/s-602A7A2F/FA377D4B
new file mode 100644
index 0000000..6f9fab9
--- /dev/null
+++ b/.Rproj.user/5271889B/sources/s-602A7A2F/FA377D4B
@@ -0,0 +1,22 @@
+{
+    "collab_server" : "",
+    "contents" : "",
+    "created" : 1544106958502.000,
+    "dirty" : false,
+    "encoding" : "UTF-8",
+    "folds" : "",
+    "hash" : "0",
+    "id" : "FA377D4B",
+    "lastKnownWriteTime" : 1544106981,
+    "last_content_update" : 1544106981793,
+    "path" : "~/GitHub/posterdown/DESCRIPTION",
+    "project_path" : "DESCRIPTION",
+    "properties" : {
+        "cursorPosition" : "1,31",
+        "scrollLine" : "0"
+    },
+    "relative_order" : 2,
+    "source_on_save" : false,
+    "source_window" : "",
+    "type" : "dcf"
+}
\ No newline at end of file
diff --git a/.Rproj.user/5271889B/sources/s-602A7A2F/FA377D4B-contents b/.Rproj.user/5271889B/sources/s-602A7A2F/FA377D4B-contents
new file mode 100644
index 0000000..9b27e89
--- /dev/null
+++ b/.Rproj.user/5271889B/sources/s-602A7A2F/FA377D4B-contents
@@ -0,0 +1,18 @@
+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
+Imports: utils, rmarkdown, knitr, yaml, tinytex, xfun
+Depends:
+    R (>= 3.3.0),
+    devtools,
+    dplyr,
+    ggplot2,
+    rmarkdown,
+    knitr
+RoxygenNote: 6.1.0.9000
diff --git a/.Rproj.user/5271889B/sources/s-602A7A2F/lock_file b/.Rproj.user/5271889B/sources/s-602A7A2F/lock_file
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/.Rproj.user/5271889B/sources/s-602A7A2F/lock_file
