diff --git a/code_pic.png b/Images/code_pic.png
similarity index 100%
rename from code_pic.png
rename to Images/code_pic.png
Binary files differ
diff --git a/example_poster.png b/Images/example_poster.png
similarity index 100%
rename from example_poster.png
rename to Images/example_poster.png
Binary files differ
diff --git a/Images/example_poster1.png b/Images/example_poster1.png
new file mode 100644
index 0000000..e772399
--- /dev/null
+++ b/Images/example_poster1.png
Binary files differ
diff --git a/posterdown_hexlogo1.png b/Images/posterdown_hexlogo1.png
similarity index 100%
rename from posterdown_hexlogo1.png
rename to Images/posterdown_hexlogo1.png
Binary files differ
diff --git a/posterdown_picture.png b/Images/posterdown_picture.png
similarity index 100%
rename from posterdown_picture.png
rename to Images/posterdown_picture.png
Binary files differ
diff --git a/Images/skeleton.pdf b/Images/skeleton.pdf
new file mode 100644
index 0000000..0324086
--- /dev/null
+++ b/Images/skeleton.pdf
Binary files differ
diff --git a/README.md b/README.md
index d08509e..9b62e27 100644
--- a/README.md
+++ b/README.md
@@ -1,16 +1,16 @@
 # posterdown
 
-<img src="posterdown_hexlogo1.png" alt="poster logo" align="right" width = "25%" height="25%"/>
+<img src="Images/posterdown_hexlogo1.png" alt="poster logo" align="right" width = "25%" height="25%"/>
 
 As a graduate student, I found that it is almost a rite of passage to take early research and analysis and generate a conference poster allowing for critical feedback. This is also important for facilitating meeting the people in your field at poster sessions at academic meetings. I have also noticed that while many of my fellow graduate students use R and are getting their feet wet with RMarkdown :blush:, we always had to go back to using MS Powerpoint or Keynote or Adobe Illustrator for generating conference posters :unamused:. Posterdown was created as a proof-of-concept (to myself) that it is possible to make a beautiful poster using open source reproducible code.
 
 From this:
 
-<img src="code_pic.png" width="50%" height="50%">
+<img src="Images/code_pic.png" width="50%" height="50%">
 
 To this:
 
-<img src="example_poster.png" width="50%" height="50%">
+<img src="Images/example_poster1.png" width="50%" height="50%">
 
 
 Please feel free to give me feedback or requests for changes in the [issues](https://github.com/brentthorne/posterdown/issues) page. I am currently finishing up my Master's degree so I will have limited time to work on updating this package in the next few months but nevertheless I will do what I can! :smile: 
@@ -67,7 +67,7 @@
     
 3. Use the **File / New File / R Markdown.. / From Template / Posterdown PDF** dialog pathway to create a conference poster from the _Posterdown PDF_ template provided.
 
-    ![New R Markdown](posterdown_picture.png)
+    ![New R Markdown](Images/posterdown_picture.png)
 
     _**NOTE** If you do not see the **Posterdown PDF** template in this dialogue box, restart the R session or close and re-open RStudio._
 
@@ -95,6 +95,10 @@
 | `poster_bgcol`| Background colour of the poster's main body section. |
 | `title_textcol` | Colour of the main title text. |
 | `header_textcol` | Colour of the Section Header Text. |
+| `header_bgcol` | Colour of the header title box. |
+| `header_bordercol` | Colour of the border around the header text box. |
+| `header_borderwidth` | Thickness of the header title box border. |
+| `header_boxshape` | Shape of the corners for the header title box (Options include: `sharp corners` or `rounded corners`. For more options please see the [tcolorbox manual]() and search for "sharp corners", **HINT** there are LOTS of options there :smile: . |
 | `cite_col` | Colour of the citation link elements when using `biblatex`. |
 | `url_col` | Colour of URL links specifically |
 | `link_col` | Colour of in-document links (example would be referencing a Figure or a Table) |
@@ -106,6 +110,7 @@
 | `bibliography_spacing` | Sets the mutiplier for line spacing between bibliography entries, default value is `0.8`. Useful if you need to squeeze more space from somewhere.
 | `output` | For generating `posterdown_pdf`, in the future other poster designs or templates may be made for this package and thus this option in the YAML will be more flexible. For now this is the only option. |
 
+
 ### Markdown Customization
 
 As you add content to your RMarkdown file, you will notice that the output pdf will fill in columns from left to right, and from top to bottom within columns. If you have more content for your poster than space is available on the default poster, it will spill onto a second page. If this occurs, you can try adding more columns and decreasing the font size (both in the YAML header) to make it work. Or, of course, edit the content to make it shorter. :smile:
@@ -137,4 +142,4 @@
 - [ ] Toggle citation section on/off as per user's choice
 - [x] ~~Make colour options standardized (probably hex colours if possible)~~
 - [ ] Allow users to choose colour options from a palette??
-- [ ] Fill/style Section headings if user wishes
+- [x] ~~Fill/style Section headings if user wishes~~
diff --git a/inst/rmarkdown/templates/posterdown_pdf/resources/template.tex b/inst/rmarkdown/templates/posterdown_pdf/resources/template.tex
index 7f3ea7b..962fa02 100644
--- a/inst/rmarkdown/templates/posterdown_pdf/resources/template.tex
+++ b/inst/rmarkdown/templates/posterdown_pdf/resources/template.tex
@@ -16,6 +16,7 @@
 \RequirePackage{lmodern}
 \RequirePackage{multicol}
 \RequirePackage{graphicx}
+\RequirePackage{lipsum}
 \RequirePackage{blindtext}
 \RequirePackage[svgnames,table]{xcolor}
 \RequirePackage{tikz}
@@ -23,6 +24,7 @@
 \RequirePackage{color}
 \RequirePackage{geometry}
 \RequirePackage{adjmulticol}
+\RequirePackage[skins,most,listings,skins]{tcolorbox}
 
 
 %For kable extra package :)
@@ -49,6 +51,7 @@
 \definecolor{columnlinecol}{HTML}{$columnline_col$}
 \definecolor{posterbgcol}{HTML}{$poster_bgcol$}
 \definecolor{headerbgcol}{HTML}{$header_bgcol$}
+\definecolor{headerbordercol}{HTML}{$header_bordercol$}
 
 % Text Colours
 \definecolor{titletextcol}{HTML}{$title_textcol$}
@@ -85,11 +88,25 @@
 \setlength{\columnseprule}{1pt}
 \def\columnseprulecolor{\color{columnlinecol}}
 
+%define section header title features
 \setsubsubsecheadstyle{\small\color{headertextcol}\textbf}% Set \section style
-\setsecheadstyle{\small\color{headertextcol}}
 \setsecnumformat{}
 \def\sectionmark#1{\markboth{#1}{#1}}
 
+
+%tcolorbox magic from my stack exchange question
+\newtcolorbox{myboxstuff}[1][]{code={\parindent=0em},colframe=headerbordercol,left skip=0pt,valign=center,halign=center,fontupper=\Large\bfseries,colupper=headertextcol,boxrule=$header_borderwidth$,$header_boxshape$,colback=headerbgcol, #1}
+\newcommand{\mybox}[1]{%
+\begin{myboxstuff}
+\strut #1
+\end{myboxstuff}%
+}
+\makeheadstyles{MyBox}{
+    \setsecheadstyle{\mybox}
+}
+\headstyles{MyBox}\makepagestyle{MyBox}
+
+
 %-----------------------------------------------------
 
 \thispagestyle{empty}
@@ -111,9 +128,11 @@
 \author{$author$}
 \title{$title$}
 \counterwithout{section}{chapter}
+
+
 \makechapterstyle{mydefault}{
 \addtocounter{secnumdepth}{2}
-\setsecheadstyle{\centering\Large\color{headertextcol}\textbf}
+\setsecheadstyle{\mybox}
 \setsubsecheadstyle{\itshape}
 \setsubsubsecheadstyle{\itshape}
 }
diff --git a/inst/rmarkdown/templates/posterdown_pdf/skeleton/skeleton.Rmd b/inst/rmarkdown/templates/posterdown_pdf/skeleton/skeleton.Rmd
index cb9f42e..7e8d11d 100644
--- a/inst/rmarkdown/templates/posterdown_pdf/skeleton/skeleton.Rmd
+++ b/inst/rmarkdown/templates/posterdown_pdf/skeleton/skeleton.Rmd
@@ -23,27 +23,33 @@
 cite_col: "CC0000" #colour of ciation elements
 url_col: "008080" #colour of url links
 link_col: "008080" #colour of other links within the poster
-columnline_col: "0b4545" #colour 
-header_bgcol: "008080"
+columnline_col: "ffffff" #colour 
 
 #Text Colours
 title_textcol: "ffffff" #colour of title text
 author_textcol: "008080" # Colour of author text
 affiliation_textcol: "FFFFFF" # Colour of affiliation text
 body_textcol: "000000" # Colour of main text in the body of poster
-header_textcol: "CC0000" # Colour of the poster header titles
-footnote_textcol: "FFFFFF" # Colour of footnote text if used
+footnote_textcol: "ffffff" # Colour of footnote text if used
 
 #----POSTER SIZE & COLUMN FORMATTING----#
-poster_height: "38in" # height in inches of poster
+poster_height: "39in" # height in inches of poster
 poster_width: "45in" # width in inches of poster
-column_numbers: 3 # Number of columns that the poster has
-column_margins: "10mm" # Margin spacing for columns
+column_numbers: 4 # Number of columns that the poster has
+column_margins: "5mm" # Margin spacing for columns
+
+#---- Section Titles Styling ----#
+header_textcol: "ffffff" # Colour of the poster header titles
+header_bgcol: "0b4545" # Colour of the header title box
+header_bordercol: "0b4545" # Colour of the border around the box (if you dont want one then set border size to 0)
+header_borderwidth: "6pt" # Thicknes of the header box border
+header_boxshape: "sharp corners" # Lots of options can be used for this. Another example is "rounded corners". I will make a list soon!
 
 #----OTHER----#
 bibliography: MyLibrary # name of the .bib file used for referencing
 bibliography_spacing: 0.8 # sets the multiplier for line spacing of bibliography spacing (between 0 and 1) 
 output: posterdown::posterdown_pdf
+
 ---
 
 ```{r, include=FALSE}
@@ -95,10 +101,14 @@
 
 This package uses the same workflow approach as the `RMarkdown` you know and love. Basically it goes from RMarkdown > Knitr > Markdown > Pandoc > Latex > PDF
 
+\lipsum[1-3]
+
 # 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).
 
+\vspace{1in}
+
 ```{r}
 library(kableExtra)
 library(ggplot2)
@@ -110,8 +120,6 @@
 
 ```
 
-\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)
@@ -125,7 +133,6 @@
 
 ```
 
-\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.'}
 
@@ -140,7 +147,7 @@
 
 ```
 
-\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!'}
 
@@ -159,6 +166,7 @@
 
 ```
 
+\lipsum[1-5]
 
 # Next Steps
 
@@ -171,6 +179,6 @@
 - Include References section only if initiated by the user like in RMarkdown.
 
 <!--- Here you can set the size of the citation text as well as remove the "References" section if you choose not to have one for some reason :) -->
-\printbibliography
+\small\printbibliography
 
 
diff --git a/inst/rmarkdown/templates/posterdown_pdf/skeleton/skeleton.pdf b/inst/rmarkdown/templates/posterdown_pdf/skeleton/skeleton.pdf
new file mode 100644
index 0000000..0324086
--- /dev/null
+++ b/inst/rmarkdown/templates/posterdown_pdf/skeleton/skeleton.pdf
Binary files differ
diff --git a/inst/rmarkdown/templates/posterdown_pdf/skeleton/skeleton.tex b/inst/rmarkdown/templates/posterdown_pdf/skeleton/skeleton.tex
new file mode 100644
index 0000000..c5fcefa
--- /dev/null
+++ b/inst/rmarkdown/templates/posterdown_pdf/skeleton/skeleton.tex
@@ -0,0 +1,424 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %%	Posterdown PDF class for LaTeX files	 08-JAN-2019
+%% %%	For any information please send an e-mail to:
+%% %%		brentthonre18@gmail.com (Brent Thorne)
+%% %%
+%% %%	Initial class provided by:
+%% %%		Brent Thorne
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\documentclass[article,30pt,extrafontsizes]{memoir}
+
+%utf-8 seems to be important
+\RequirePackage[utf8]{inputenc}
+\RequirePackage[T1]{fontenc}
+\RequirePackage{lmodern}
+\RequirePackage{multicol}
+\RequirePackage{graphicx}
+\RequirePackage{lipsum}
+\RequirePackage{blindtext}
+\RequirePackage[svgnames,table]{xcolor}
+\RequirePackage{tikz}
+\RequirePackage[framemethod=tikz]{mdframed}
+\RequirePackage{color}
+\RequirePackage{geometry}
+\RequirePackage{adjmulticol}
+\RequirePackage[skins,most,listings,skins]{tcolorbox}
+
+
+%For kable extra package :)
+\RequirePackage{booktabs}
+\RequirePackage{longtable}
+\RequirePackage{array}
+\RequirePackage{multirow}
+\RequirePackage{wrapfig}
+\RequirePackage{float}
+\RequirePackage{colortbl}
+\RequirePackage{pdflscape}
+\RequirePackage{pagecolor}
+\RequirePackage{tabu}
+\RequirePackage{threeparttable}
+\RequirePackage{threeparttablex}
+\RequirePackage[normalem]{ulem}
+\RequirePackage{makecell}
+\RequirePackage{wrapfig}
+
+%%%%%%%%% COLOURS %%%%%%%%
+
+%Fill/ Line Colours
+\definecolor{titlebgcol}{HTML}{0b4545}
+\definecolor{columnlinecol}{HTML}{ffffff}
+\definecolor{posterbgcol}{HTML}{ffffff}
+\definecolor{headerbgcol}{HTML}{0b4545}
+\definecolor{headerbordercol}{HTML}{0b4545}
+
+% Text Colours
+\definecolor{titletextcol}{HTML}{ffffff}
+\definecolor{authortextcol}{HTML}{008080}
+\definecolor{affiliationtextcol}{HTML}{FFFFFF}
+\definecolor{headertextcol}{HTML}{ffffff}
+\definecolor{bodytextcol}{HTML}{000000}
+\definecolor{footnotetextcol}{HTML}{ffffff}
+\definecolor{citecol}{HTML}{CC0000}
+\definecolor{urlcol}{HTML}{008080}
+\definecolor{linkcol}{HTML}{008080}
+
+\RequirePackage{hyperref}
+\hypersetup{
+    colorlinks=true,
+    linkcolor=linkcol,
+    citecolor=citecol,
+    filecolor=magenta,
+    urlcolor=urlcol,
+}
+
+%For figure and table placement
+\RequirePackage{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{columnlinecol}}
+
+%define section header title features
+\setsubsubsecheadstyle{\small\color{headertextcol}\textbf}% Set \section style
+\setsecnumformat{}
+\def\sectionmark#1{\markboth{#1}{#1}}
+
+
+%tcolorbox magic from my stack exchange question
+\newtcolorbox{myboxstuff}[1][]{code={\parindent=0em},colframe=headerbordercol,left skip=0pt,valign=center,halign=center,fontupper=\Large\bfseries,colupper=headertextcol,boxrule=6pt,sharp corners,colback=headerbgcol, #1}
+\newcommand{\mybox}[1]{%
+\begin{myboxstuff}
+\strut #1
+\end{myboxstuff}%
+}
+\makeheadstyles{MyBox}{
+    \setsecheadstyle{\mybox}
+}
+\headstyles{MyBox}\makepagestyle{MyBox}
+
+
+%-----------------------------------------------------
+
+\thispagestyle{empty}
+\definecolor{light-gray}{gray}{0.9}
+
+%biblatex options
+\RequirePackage[sorting=none,backend=biber]{biblatex}
+\renewcommand*{\bibfont}{\tiny}
+\bibliography{MyLibrary}
+\defbibheading{bibliography}[\bibname]{%
+\section*{#1}%
+\markboth{#1}{#1}}
+\AtBeginDocument{%
+  \renewcommand{\bibname}{References}
+}
+
+%bring in the users information
+\author{Author One\textsuperscript{1} Author Two\textsuperscript{2}}
+\title{\fontfamily{phv}\selectfont Using posterdown to generate reproducible
+conference posters via RMarkdown \textgreater{} Knitr \textgreater{}
+Markdown \textgreater{} Pandoc \textgreater{} Latex \textgreater{} PDF
+workflow}
+\counterwithout{section}{chapter}
+
+
+\makechapterstyle{mydefault}{
+\addtocounter{secnumdepth}{2}
+\setsecheadstyle{\mybox}
+\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{39in}{45in}
+\settrimmedsize{\stockheight}{\stockwidth}{*}
+\settypeblocksize{39in}{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
+
+\mdfdefinestyle{brentsmdfstyle}{%
+  backgroundcolor=titlebgcol,
+  linecolor=columnlinecol,
+  topline=false,
+  leftline=false,
+  rightline=false,
+  linewidth=2mm}
+
+%Footnote to white
+\RequirePackage{footmisc}
+\def\footnotelayout{\centering\color{footnotetextcol}}
+
+% see https://stackoverflow.com/a/47122900
+\usepackage{color}
+\usepackage{fancyvrb}
+\newcommand{\VerbBar}{|}
+\newcommand{\VERB}{\Verb[commandchars=\\\{\}]}
+\DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\}}
+% Add ',fontsize=\small' for more characters per line
+\usepackage{framed}
+\definecolor{shadecolor}{RGB}{248,248,248}
+\newenvironment{Shaded}{\begin{snugshade}}{\end{snugshade}}
+\newcommand{\KeywordTok}[1]{\textcolor[rgb]{0.13,0.29,0.53}{\textbf{#1}}}
+\newcommand{\DataTypeTok}[1]{\textcolor[rgb]{0.13,0.29,0.53}{#1}}
+\newcommand{\DecValTok}[1]{\textcolor[rgb]{0.00,0.00,0.81}{#1}}
+\newcommand{\BaseNTok}[1]{\textcolor[rgb]{0.00,0.00,0.81}{#1}}
+\newcommand{\FloatTok}[1]{\textcolor[rgb]{0.00,0.00,0.81}{#1}}
+\newcommand{\ConstantTok}[1]{\textcolor[rgb]{0.00,0.00,0.00}{#1}}
+\newcommand{\CharTok}[1]{\textcolor[rgb]{0.31,0.60,0.02}{#1}}
+\newcommand{\SpecialCharTok}[1]{\textcolor[rgb]{0.00,0.00,0.00}{#1}}
+\newcommand{\StringTok}[1]{\textcolor[rgb]{0.31,0.60,0.02}{#1}}
+\newcommand{\VerbatimStringTok}[1]{\textcolor[rgb]{0.31,0.60,0.02}{#1}}
+\newcommand{\SpecialStringTok}[1]{\textcolor[rgb]{0.31,0.60,0.02}{#1}}
+\newcommand{\ImportTok}[1]{#1}
+\newcommand{\CommentTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textit{#1}}}
+\newcommand{\DocumentationTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}}
+\newcommand{\AnnotationTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}}
+\newcommand{\CommentVarTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}}
+\newcommand{\OtherTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{#1}}
+\newcommand{\FunctionTok}[1]{\textcolor[rgb]{0.00,0.00,0.00}{#1}}
+\newcommand{\VariableTok}[1]{\textcolor[rgb]{0.00,0.00,0.00}{#1}}
+\newcommand{\ControlFlowTok}[1]{\textcolor[rgb]{0.13,0.29,0.53}{\textbf{#1}}}
+\newcommand{\OperatorTok}[1]{\textcolor[rgb]{0.81,0.36,0.00}{\textbf{#1}}}
+\newcommand{\BuiltInTok}[1]{#1}
+\newcommand{\ExtensionTok}[1]{#1}
+\newcommand{\PreprocessorTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textit{#1}}}
+\newcommand{\AttributeTok}[1]{\textcolor[rgb]{0.77,0.63,0.00}{#1}}
+\newcommand{\RegionMarkerTok}[1]{#1}
+\newcommand{\InformationTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}}
+\newcommand{\WarningTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}}
+\newcommand{\AlertTok}[1]{\textcolor[rgb]{0.94,0.16,0.16}{#1}}
+\newcommand{\ErrorTok}[1]{\textcolor[rgb]{0.64,0.00,0.00}{\textbf{#1}}}
+\newcommand{\NormalTok}[1]{#1}
+
+% choose font family
+\RequirePackage{palatino}
+
+\newpagecolor{posterbgcol}
+
+%begin the document
+\begin{document}
+
+\begin{mdframed}[style=brentsmdfstyle]
+
+%sets footnote to be white hopefully
+\renewcommand\footnoterule{}
+\renewcommand{\thempfootnote}{\footnotesize\color{footnotetextcol}{\arabic{mpfootnote}}}
+
+% group which adds title author and other infor
+% Used instead of \maketitle for better spacing options
+\begingroup
+  \centering
+  \color{titletextcol}
+\vspace{0.5in}
+  \Huge{\fontfamily{phv}\selectfont Using posterdown to generate reproducible
+conference posters via RMarkdown \textgreater{} Knitr \textgreater{}
+Markdown \textgreater{} Pandoc \textgreater{} Latex \textgreater{} PDF
+workflow}  \\[0.3in]
+  \color{authortextcol} \Large{Author One\textsuperscript{1} Author Two\textsuperscript{2}} \\[0.2in]
+  \color{affiliationtextcol} \large{\textsuperscript{1}Department of Poster Layouts, University of Markdown;
+\textsuperscript{2}Deparment of Another Institution, Institution
+University}
+  \vspace{0.2in}
+
+% end title section -------------------
+  \endgroup
+\end{mdframed}
+
+% Brgin body of poster
+\begin{adjmulticols*}{4}{10mm}{10mm}
+\normalsize{
+\color{bodytextcol}
+\section{Introduction}\label{introduction}
+
+Welcome to \texttt{posterdown} ! This is my attempt to provide a
+semi-smooth workflow for those who wish to take their \texttt{RMarkdown}
+skills to the conference world. Many creature comforts from
+\texttt{RMarkdown} are available in this package such as
+\texttt{Markdown} section notation, figure captioning, and even
+citations like this one \autocite{holden_identifying_2012} The rest of
+this example poster will show how you can insert typical conference
+poster features into your own document.
+
+\section{Study Site}\label{study-site}
+
+Here is a map made to show the study site using \texttt{ggplot2},
+\texttt{ggspatial}, and \texttt{sf}. Lorem ipsum dolor sit amet,
+\autocite{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.
+
+\begin{figure}
+
+{\centering \includegraphics[width=0.8\linewidth]{skeleton_files/figure-latex/unnamed-chunk-2-1} 
+
+}
+
+\caption{This is a map of Canada, the ggspatial package is great for GIS folks in R!}\label{fig:unnamed-chunk-2}
+\end{figure}
+
+\section{Objectives}\label{objectives}
+
+\large
+
+\begin{enumerate}
+\def\labelenumi{\arabic{enumi}.}
+\tightlist
+\item
+  Easy to use reproducible poster design.
+\item
+  Integration with \texttt{RMarkdown}.
+\item
+  Easy transition from \texttt{posterdown} to \texttt{thesisdown} or
+  \texttt{rticles}
+\end{enumerate}
+
+\small
+
+\section{Methods}\label{methods}
+
+This package uses the same workflow approach as the \texttt{RMarkdown}
+you know and love. Basically it goes from RMarkdown \textgreater{} Knitr
+\textgreater{} Markdown \textgreater{} Pandoc \textgreater{} Latex
+\textgreater{} PDF
+
+\lipsum[1-3]
+
+\section{Results}\label{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
+\texttt{kable} table formatting you are probably use to as per typical
+\texttt{RMarkdown} formatting. I suggesting checking out the
+\texttt{kableExtra} package and its in depth documentation on
+customizing these tables found
+\href{https://haozhu233.github.io/kableExtra/awesome_table_in_pdf.pdf}{here}.
+
+\vspace{1in}
+
+\begin{table}[H]
+
+\caption{\label{tab:unnamed-chunk-3}Tables are a breeze with Kable and Kable extra package!}
+\centering
+\fontsize{25}{27}\selectfont
+\begin{tabu} to \linewidth {>{\centering}X>{\centering}X>{\centering}X>{\centering}X>{\centering}X}
+\toprule
+Sepal.Length & Sepal.Width & Petal.Length & Petal.Width & Species\\
+\midrule
+\rowcolor{gray!6}  5.1 & 3.5 & 1.4 & 0.2 & setosa\\
+4.9 & 3.0 & 1.4 & 0.2 & setosa\\
+\rowcolor{gray!6}  4.7 & 3.2 & 1.3 & 0.2 & setosa\\
+4.6 & 3.1 & 1.5 & 0.2 & setosa\\
+\bottomrule
+\end{tabu}
+\end{table}
+
+\begin{figure}
+
+{\centering \includegraphics[width=0.75\linewidth]{skeleton_files/figure-latex/unnamed-chunk-4-1} 
+
+}
+
+\caption{A typical plot using ggplot using the classic iris dataset.}\label{fig:unnamed-chunk-4}
+\end{figure}
+
+\begin{figure}
+
+{\centering \includegraphics[width=0.85\linewidth]{skeleton_files/figure-latex/unnamed-chunk-5-1} 
+
+}
+
+\caption{Another typical plot using ggplot, this time with a different theme and r code chunk options for fig.width and fig.height.}\label{fig:unnamed-chunk-5}
+\end{figure}
+
+\begin{Shaded}
+\begin{Highlighting}[]
+\CommentTok{# Here is some code for people}
+\CommentTok{# to look at and be in awe of!!!!}
+\KeywordTok{library}\NormalTok{(ggplot2)}
+\KeywordTok{library}\NormalTok{(ggthemes)}
+
+\KeywordTok{ggplot}\NormalTok{(}\DataTypeTok{data=}\NormalTok{iris,}
+       \KeywordTok{aes}\NormalTok{(}\DataTypeTok{x =}\NormalTok{ Sepal.Width,}
+           \DataTypeTok{y =}\NormalTok{ Sepal.Length,}
+           \DataTypeTok{colour =}\NormalTok{ Species)) }\OperatorTok{+}
+\StringTok{  }\KeywordTok{geom_point}\NormalTok{() }\OperatorTok{+}
+\StringTok{  }\KeywordTok{theme_stata}\NormalTok{() }\OperatorTok{+}
+\StringTok{  }\OtherTok{NULL}
+\end{Highlighting}
+\end{Shaded}
+
+\begin{figure}
+
+{\centering \includegraphics[width=0.8\linewidth]{skeleton_files/figure-latex/unnamed-chunk-6-1} 
+
+}
+
+\caption{Another figure showing how base R plots might look on this poster!}\label{fig:unnamed-chunk-6}
+\end{figure}
+
+\lipsum[1-5]
+
+\section{Next Steps}\label{next-steps}
+
+There is still \textbf{A LOT} of work to do on this package which
+include (but are note limited to):
+
+\begin{itemize}
+\tightlist
+\item
+  Better softcoding for front end user options in YAML
+\item
+  Images in the title section for logo placement which is a common
+  attribut to posters as far as I have come to know.
+\item
+  Figure out compatiability with \texttt{natbib} which wasn't working
+  during the initial set up.
+\item
+  MUCH BETTER PACKAGE DOCUMENTATION. For example, there is nothing in
+  the README\ldots{}
+\item
+  Include References section only if initiated by the user like in
+  RMarkdown.
+\end{itemize}
+
+\small\printbibliography
+}
+\end{adjmulticols*}
+%end the poster
+\end{document}
diff --git a/inst/rmarkdown/templates/posterdown_pdf/skeleton/skeleton_cache/latex/__packages b/inst/rmarkdown/templates/posterdown_pdf/skeleton/skeleton_cache/latex/__packages
new file mode 100644
index 0000000..663d793
--- /dev/null
+++ b/inst/rmarkdown/templates/posterdown_pdf/skeleton/skeleton_cache/latex/__packages
@@ -0,0 +1,11 @@
+base
+methods
+datasets
+utils
+grDevices
+graphics
+stats
+ggplot2
+ggspatial
+ggthemes
+sf
diff --git a/inst/rmarkdown/templates/posterdown_pdf/skeleton/skeleton_cache/latex/unnamed-chunk-2_05b605b26d781c2bf5fed7fba4ca4e78.rdb b/inst/rmarkdown/templates/posterdown_pdf/skeleton/skeleton_cache/latex/unnamed-chunk-2_05b605b26d781c2bf5fed7fba4ca4e78.rdb
new file mode 100644
index 0000000..9471e79
--- /dev/null
+++ b/inst/rmarkdown/templates/posterdown_pdf/skeleton/skeleton_cache/latex/unnamed-chunk-2_05b605b26d781c2bf5fed7fba4ca4e78.rdb
Binary files differ
diff --git a/inst/rmarkdown/templates/posterdown_pdf/skeleton/skeleton_cache/latex/unnamed-chunk-2_05b605b26d781c2bf5fed7fba4ca4e78.rdx b/inst/rmarkdown/templates/posterdown_pdf/skeleton/skeleton_cache/latex/unnamed-chunk-2_05b605b26d781c2bf5fed7fba4ca4e78.rdx
new file mode 100644
index 0000000..d372698
--- /dev/null
+++ b/inst/rmarkdown/templates/posterdown_pdf/skeleton/skeleton_cache/latex/unnamed-chunk-2_05b605b26d781c2bf5fed7fba4ca4e78.rdx
Binary files differ
diff --git a/inst/rmarkdown/templates/posterdown_pdf/skeleton/skeleton_files/figure-latex/unnamed-chunk-2-1.pdf b/inst/rmarkdown/templates/posterdown_pdf/skeleton/skeleton_files/figure-latex/unnamed-chunk-2-1.pdf
new file mode 100644
index 0000000..45a297a
--- /dev/null
+++ b/inst/rmarkdown/templates/posterdown_pdf/skeleton/skeleton_files/figure-latex/unnamed-chunk-2-1.pdf
Binary files differ
diff --git a/inst/rmarkdown/templates/posterdown_pdf/skeleton/skeleton_files/figure-latex/unnamed-chunk-4-1.pdf b/inst/rmarkdown/templates/posterdown_pdf/skeleton/skeleton_files/figure-latex/unnamed-chunk-4-1.pdf
new file mode 100644
index 0000000..e9f379c
--- /dev/null
+++ b/inst/rmarkdown/templates/posterdown_pdf/skeleton/skeleton_files/figure-latex/unnamed-chunk-4-1.pdf
Binary files differ
diff --git a/inst/rmarkdown/templates/posterdown_pdf/skeleton/skeleton_files/figure-latex/unnamed-chunk-5-1.pdf b/inst/rmarkdown/templates/posterdown_pdf/skeleton/skeleton_files/figure-latex/unnamed-chunk-5-1.pdf
new file mode 100644
index 0000000..fe23f52
--- /dev/null
+++ b/inst/rmarkdown/templates/posterdown_pdf/skeleton/skeleton_files/figure-latex/unnamed-chunk-5-1.pdf
Binary files differ
diff --git a/inst/rmarkdown/templates/posterdown_pdf/skeleton/skeleton_files/figure-latex/unnamed-chunk-6-1.pdf b/inst/rmarkdown/templates/posterdown_pdf/skeleton/skeleton_files/figure-latex/unnamed-chunk-6-1.pdf
new file mode 100644
index 0000000..c7a746d
--- /dev/null
+++ b/inst/rmarkdown/templates/posterdown_pdf/skeleton/skeleton_files/figure-latex/unnamed-chunk-6-1.pdf
Binary files differ
diff --git a/output.png b/output.png
new file mode 100644
index 0000000..01c1778
--- /dev/null
+++ b/output.png
Binary files differ
