From 169168b0fa17a0d9826a4912e0346d0eeaab20f2 Mon Sep 17 00:00:00 2001
From: shammash <shammash@autistici.org>
Date: Mon, 10 Oct 2011 21:52:44 +0200
Subject: [PATCH] updated hybrid to 1.0

---
 wp-content/themes/hybrid/404.php              |  22 +-
 wp-content/themes/hybrid/archive.php          |  30 +-
 wp-content/themes/hybrid/attachment.php       |  53 +-
 wp-content/themes/hybrid/comment.php          |   6 +-
 wp-content/themes/hybrid/comments.php         |  36 +-
 wp-content/themes/hybrid/css/2c-l-fixed.css   |   1 +
 .../themes/hybrid/css/2c-l-fixed.dev.css      |  62 ++
 wp-content/themes/hybrid/css/2c-r-fixed.css   |   1 +
 .../themes/hybrid/css/2c-r-fixed.dev.css      |  60 ++
 wp-content/themes/hybrid/css/3c-c-fixed.css   |   1 +
 .../themes/hybrid/css/3c-c-fixed.dev.css      |  84 ++
 wp-content/themes/hybrid/css/3c-l-fixed.css   |   1 +
 .../themes/hybrid/css/3c-l-fixed.dev.css      |  61 ++
 wp-content/themes/hybrid/css/3c-r-fixed.css   |   1 +
 .../themes/hybrid/css/3c-r-fixed.dev.css      |  62 ++
 .../themes/hybrid/css/holy-grail-fluid.css    |   5 +
 wp-content/themes/hybrid/css/plugins.css      |   5 +
 wp-content/themes/hybrid/css/print.css        |   5 +
 wp-content/themes/hybrid/css/screen.css       |   1 +
 wp-content/themes/hybrid/docs/license.txt     | 339 +++++++
 wp-content/themes/hybrid/docs/readme.html     | 101 ++
 wp-content/themes/hybrid/footer.php           |  12 +-
 wp-content/themes/hybrid/functions.php        | 403 +++++++-
 wp-content/themes/hybrid/header.php           |  27 +-
 wp-content/themes/hybrid/index.php            |  50 +-
 .../themes/hybrid/languages/hybrid-en_EN.mo   | Bin 554 -> 580 bytes
 .../themes/hybrid/languages/hybrid-en_EN.po   | 923 ++++++++----------
 wp-content/themes/hybrid/languages/hybrid.pot | 923 ++++++++----------
 .../themes/hybrid/library/admin/admin.php     |  90 +-
 .../library/admin/meta-box-post-seo.php       | 114 +++
 .../library/admin/meta-box-post-template.php  | 117 +++
 .../library/admin/meta-box-theme-about.php    |  95 ++
 .../library/admin/meta-box-theme-footer.php   |  68 ++
 .../hybrid/library/admin/theme-settings.php   | 290 ++++++
 .../library/classes/widget-archives.php       | 138 ++-
 .../hybrid/library/classes/widget-authors.php | 179 ++--
 .../library/classes/widget-bookmarks.php      | 187 ++--
 .../library/classes/widget-calendar.php       |  77 +-
 .../library/classes/widget-categories.php     | 175 ++--
 .../library/classes/widget-nav-menu.php       | 138 ++-
 .../hybrid/library/classes/widget-pages.php   | 175 ++--
 .../hybrid/library/classes/widget-search.php  |  98 +-
 .../hybrid/library/classes/widget-tags.php    | 148 ++-
 wp-content/themes/hybrid/library/css/18px.css |   2 +-
 .../themes/hybrid/library/css/18px.dev.css    | 308 ++++++
 wp-content/themes/hybrid/library/css/20px.css |   2 +-
 .../themes/hybrid/library/css/20px.dev.css    | 308 ++++++
 wp-content/themes/hybrid/library/css/21px.css |   2 +-
 .../themes/hybrid/library/css/21px.dev.css    | 308 ++++++
 wp-content/themes/hybrid/library/css/22px.css |   2 +-
 .../themes/hybrid/library/css/22px.dev.css    | 308 ++++++
 wp-content/themes/hybrid/library/css/24px.css |   2 +-
 .../themes/hybrid/library/css/24px.dev.css    | 308 ++++++
 wp-content/themes/hybrid/library/css/25px.css |   2 +-
 .../themes/hybrid/library/css/25px.dev.css    | 308 ++++++
 .../themes/hybrid/library/css/2c-l-fixed.css  |  64 +-
 .../themes/hybrid/library/css/2c-r-fixed.css  |  62 +-
 .../themes/hybrid/library/css/3c-c-fixed.css  |  79 +-
 .../themes/hybrid/library/css/3c-l-fixed.css  |  64 +-
 .../themes/hybrid/library/css/3c-r-fixed.css  |  64 +-
 .../themes/hybrid/library/css/admin.css       |  58 +-
 .../themes/hybrid/library/css/admin.dev.css   |  76 ++
 .../themes/hybrid/library/css/drop-downs.css  |  62 +-
 .../hybrid/library/css/drop-downs.dev.css     |  55 ++
 .../themes/hybrid/library/css/gallery.css     |   1 +
 .../themes/hybrid/library/css/gallery.dev.css |  68 ++
 .../hybrid/library/css/holy-grail-fluid.css   |   4 +
 .../themes/hybrid/library/css/plugins.css     |   4 +
 .../themes/hybrid/library/css/reset.css       |   2 +-
 .../themes/hybrid/library/css/reset.dev.css   |  27 +
 .../themes/hybrid/library/css/screen.css      | 610 +-----------
 .../themes/hybrid/library/css/ui-tabs.css     |  20 +
 .../library/extensions/breadcrumb-trail.php   | 416 ++++++--
 .../library/extensions/cleaner-caption.php    |  87 ++
 .../library/extensions/cleaner-gallery.php    | 165 ++++
 .../extensions/custom-field-series.php        | 158 ++-
 .../hybrid/library/extensions/entry-views.php | 181 ++++
 .../library/extensions/get-the-image.php      | 391 +++++---
 .../library/extensions/loop-pagination.php    | 104 ++
 .../library/extensions/post-stylesheets.php   | 164 ++++
 .../library/extensions/theme-layouts.php      | 399 ++++++++
 .../hybrid/library/functions/comments.php     | 150 +--
 .../hybrid/library/functions/context.php      | 246 +++--
 .../hybrid/library/functions/core-seo.php     | 231 +++++
 .../themes/hybrid/library/functions/core.php  | 196 +++-
 .../hybrid/library/functions/deprecated.php   | 550 +++++++++++
 .../themes/hybrid/library/functions/media.php | 155 ++-
 .../themes/hybrid/library/functions/menus.php |  56 +-
 .../hybrid/library/functions/settings.php     |  81 ++
 .../hybrid/library/functions/shortcodes.php   | 148 +--
 .../hybrid/library/functions/sidebars.php     | 109 +++
 .../library/functions/template-hierarchy.php  | 198 ++++
 .../hybrid/library/functions/utility.php      | 184 ++++
 .../hybrid/library/functions/widgets.php      | 222 ++---
 wp-content/themes/hybrid/library/hybrid.php   | 305 ++++++
 .../hybrid/library/js/drop-downs.dev.js       | 236 +++++
 .../themes/hybrid/library/js/drop-downs.js    |  78 +-
 wp-content/themes/hybrid/library/license.txt  | 339 +++++++
 wp-content/themes/hybrid/loop-error.php       |  21 +
 wp-content/themes/hybrid/loop-meta.php        | 130 +++
 wp-content/themes/hybrid/loop-nav.php         |  37 +
 wp-content/themes/hybrid/menu-primary.php     |  10 +-
 wp-content/themes/hybrid/page-archives.php    |  42 +-
 wp-content/themes/hybrid/page-authors.php     |  29 +-
 wp-content/themes/hybrid/page-biography.php   |  39 +-
 wp-content/themes/hybrid/page-blog.php        |  25 +-
 wp-content/themes/hybrid/page-bookmarks.php   |  25 +-
 wp-content/themes/hybrid/page-categories.php  |  27 +-
 wp-content/themes/hybrid/page-daily.php       |  23 +-
 wp-content/themes/hybrid/page-logged-in.php   |  35 +-
 wp-content/themes/hybrid/page-monthly.php     |  25 +-
 wp-content/themes/hybrid/page-no-widgets.php  |  25 +-
 .../themes/hybrid/page-post_tag-cloud.php     |  29 +-
 wp-content/themes/hybrid/page-sitemap.php     |  59 +-
 wp-content/themes/hybrid/page-weekly.php      |  23 +-
 wp-content/themes/hybrid/page-widgets.php     |  23 +-
 wp-content/themes/hybrid/page-yearly.php      |  23 +-
 wp-content/themes/hybrid/post-no-widgets.php  |  22 +-
 wp-content/themes/hybrid/screenshot.png       | Bin 20764 -> 13244 bytes
 wp-content/themes/hybrid/search.php           |  30 +-
 wp-content/themes/hybrid/searchform.php       |   8 +-
 .../themes/hybrid/sidebar-after-content.php   |   6 +-
 .../themes/hybrid/sidebar-after-singular.php  |   6 +-
 .../themes/hybrid/sidebar-before-content.php  |   6 +-
 wp-content/themes/hybrid/sidebar-primary.php  |   6 +-
 .../themes/hybrid/sidebar-secondary.php       |   6 +-
 .../themes/hybrid/sidebar-subsidiary.php      |   6 +-
 wp-content/themes/hybrid/singular.php         |  22 +-
 wp-content/themes/hybrid/style.css            |  41 +-
 wp-content/themes/hybrid/style.dev.css        | 561 +++++++++++
 .../themes/hybrid/taxonomy-link_category.php  |  26 +-
 131 files changed, 11656 insertions(+), 3833 deletions(-)
 create mode 100644 wp-content/themes/hybrid/css/2c-l-fixed.css
 create mode 100644 wp-content/themes/hybrid/css/2c-l-fixed.dev.css
 create mode 100644 wp-content/themes/hybrid/css/2c-r-fixed.css
 create mode 100644 wp-content/themes/hybrid/css/2c-r-fixed.dev.css
 create mode 100644 wp-content/themes/hybrid/css/3c-c-fixed.css
 create mode 100644 wp-content/themes/hybrid/css/3c-c-fixed.dev.css
 create mode 100644 wp-content/themes/hybrid/css/3c-l-fixed.css
 create mode 100644 wp-content/themes/hybrid/css/3c-l-fixed.dev.css
 create mode 100644 wp-content/themes/hybrid/css/3c-r-fixed.css
 create mode 100644 wp-content/themes/hybrid/css/3c-r-fixed.dev.css
 create mode 100644 wp-content/themes/hybrid/css/holy-grail-fluid.css
 create mode 100644 wp-content/themes/hybrid/css/plugins.css
 create mode 100644 wp-content/themes/hybrid/css/print.css
 create mode 100644 wp-content/themes/hybrid/css/screen.css
 create mode 100644 wp-content/themes/hybrid/docs/license.txt
 create mode 100644 wp-content/themes/hybrid/docs/readme.html
 create mode 100644 wp-content/themes/hybrid/library/admin/meta-box-post-seo.php
 create mode 100644 wp-content/themes/hybrid/library/admin/meta-box-post-template.php
 create mode 100644 wp-content/themes/hybrid/library/admin/meta-box-theme-about.php
 create mode 100644 wp-content/themes/hybrid/library/admin/meta-box-theme-footer.php
 create mode 100644 wp-content/themes/hybrid/library/admin/theme-settings.php
 create mode 100644 wp-content/themes/hybrid/library/css/18px.dev.css
 create mode 100644 wp-content/themes/hybrid/library/css/20px.dev.css
 create mode 100644 wp-content/themes/hybrid/library/css/21px.dev.css
 create mode 100644 wp-content/themes/hybrid/library/css/22px.dev.css
 create mode 100644 wp-content/themes/hybrid/library/css/24px.dev.css
 create mode 100644 wp-content/themes/hybrid/library/css/25px.dev.css
 create mode 100644 wp-content/themes/hybrid/library/css/admin.dev.css
 create mode 100644 wp-content/themes/hybrid/library/css/drop-downs.dev.css
 create mode 100644 wp-content/themes/hybrid/library/css/gallery.css
 create mode 100644 wp-content/themes/hybrid/library/css/gallery.dev.css
 create mode 100644 wp-content/themes/hybrid/library/css/reset.dev.css
 create mode 100644 wp-content/themes/hybrid/library/css/ui-tabs.css
 create mode 100644 wp-content/themes/hybrid/library/extensions/cleaner-caption.php
 create mode 100644 wp-content/themes/hybrid/library/extensions/cleaner-gallery.php
 create mode 100644 wp-content/themes/hybrid/library/extensions/entry-views.php
 create mode 100644 wp-content/themes/hybrid/library/extensions/loop-pagination.php
 create mode 100644 wp-content/themes/hybrid/library/extensions/post-stylesheets.php
 create mode 100644 wp-content/themes/hybrid/library/extensions/theme-layouts.php
 create mode 100644 wp-content/themes/hybrid/library/functions/core-seo.php
 create mode 100644 wp-content/themes/hybrid/library/functions/deprecated.php
 create mode 100644 wp-content/themes/hybrid/library/functions/settings.php
 create mode 100644 wp-content/themes/hybrid/library/functions/sidebars.php
 create mode 100644 wp-content/themes/hybrid/library/functions/template-hierarchy.php
 create mode 100644 wp-content/themes/hybrid/library/functions/utility.php
 create mode 100644 wp-content/themes/hybrid/library/hybrid.php
 create mode 100644 wp-content/themes/hybrid/library/js/drop-downs.dev.js
 create mode 100644 wp-content/themes/hybrid/library/license.txt
 create mode 100644 wp-content/themes/hybrid/loop-error.php
 create mode 100644 wp-content/themes/hybrid/loop-meta.php
 create mode 100644 wp-content/themes/hybrid/loop-nav.php
 create mode 100644 wp-content/themes/hybrid/style.dev.css

diff --git a/wp-content/themes/hybrid/404.php b/wp-content/themes/hybrid/404.php
index a550b3e67..c6f1139c9 100644
--- a/wp-content/themes/hybrid/404.php
+++ b/wp-content/themes/hybrid/404.php
@@ -7,40 +7,38 @@
  * is active, its widgets will be displayed instead. This allows users to customize their error
  * pages in any way they want.
  *
- * For more information on how WordPress handles 404 errors:
- * @link http://codex.wordpress.org/Creating_an_Error_404_Page
- *
  * @package Hybrid
  * @subpackage Template
+ * @link http://codex.wordpress.org/Creating_an_Error_404_Page
  */
 
 @header( 'HTTP/1.1 404 Not found', true, 404 );
 
-get_header(); ?>
+get_header(); // Loads the header.php template. ?>
 
 	<div id="content" class="hfeed content">
 
-		<?php hybrid_before_content(); // Before content hook ?>
+		<?php do_atomic( 'before_content' ); // hybrid_before_content ?>
 
-		<?php if ( is_active_sidebar( 'utility-404' ) ) : ?>
+		<?php if ( is_active_sidebar( 'error-404-template' ) ) : ?>
 
 			<div id="utility-404" class="sidebar utility">
-				<?php dynamic_sidebar( 'utility-404' ); ?>
+				<?php dynamic_sidebar( 'error-404-template' ); ?>
 			</div><!-- #utility-404 .utility -->
 
 		<?php else: ?>
 
 			<div id="post-0" class="<?php hybrid_entry_class(); ?>">
 
-				<h1 class="error-404-title entry-title"><?php _e( 'Not Found', 'hybrid' ); ?></h1>
+				<h1 class="error-404-title entry-title"><?php _e( 'Not Found', hybrid_get_textdomain() ); ?></h1>
 
 				<div class="entry-content">
 
 					<p>
-					<?php printf( __( 'You tried going to %1$s, and it doesn\'t exist. All is not lost! You can search for what you\'re looking for.', 'hybrid' ), '<code>' . site_url( esc_url( $_SERVER['REQUEST_URI'] ) ) . '</code>' ); ?>
+					<?php printf( __( 'You tried going to %1$s, and it doesn\'t exist. All is not lost! You can search for what you\'re looking for.', hybrid_get_textdomain() ), '<code>' . home_url( esc_url( $_SERVER['REQUEST_URI'] ) ) . '</code>' ); ?>
 					</p>
 
-					<?php get_search_form(); ?>
+					<?php get_search_form(); // Loads the searchform.php template. ?>
 
 				</div><!-- .entry-content -->
 
@@ -48,8 +46,8 @@ get_header(); ?>
 
 		<?php endif; ?>
 
-		<?php hybrid_after_content(); // After content hook ?>
+		<?php do_atomic( 'after_content' ); // hybrid_after_content ?>
 
 	</div><!-- .content .hfeed -->
 
-<?php get_footer(); ?>
\ No newline at end of file
+<?php get_footer(); // Loads the footer.php template. ?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/archive.php b/wp-content/themes/hybrid/archive.php
index a2a50feff..3163f27d3 100644
--- a/wp-content/themes/hybrid/archive.php
+++ b/wp-content/themes/hybrid/archive.php
@@ -10,37 +10,27 @@
  * @subpackage Template
  */
 
-get_header(); ?>
+get_header(); // Loads the header.php template. ?>
 
 	<div id="content" class="hfeed content">
 
-		<?php hybrid_before_content(); // Before content hook ?>
+		<?php do_atomic( 'before_content' ); // hybrid_before_content ?>
 
-		<div class="archive-info">
-
-			<h1 class="archive-title"><?php _e( 'Archives', 'hybrid' ); ?></h1>
-
-			<div class="archive-description">
-				<p>
-				<?php _e( 'You are browsing the site archives.', 'hybrid' ); ?>
-				</p>
-			</div><!-- .archive-description -->
-
-		</div><!-- .archive-info -->
+		<?php get_template_part( 'loop-meta' ); // Loads the loop-meta.php template. ?>
 
 		<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
 
 			<div id="post-<?php the_ID(); ?>" class="<?php hybrid_entry_class(); ?>">
 
-				<?php get_the_image( array( 'custom_key' => array( 'Thumbnail' ), 'size' => 'thumbnail' ) ); ?>
+				<?php get_the_image( array( 'meta_key' => 'Thumbnail', 'size' => 'thumbnail' ) ); ?>
 
-				<?php hybrid_before_entry(); // Before entry hook ?>
+				<?php do_atomic( 'before_entry' ); // hybrid_before_entry ?>
 
 				<div class="entry-summary">
 					<?php the_excerpt(); ?>
 				</div><!-- .entry-summary -->
 
-				<?php hybrid_after_entry(); // After entry hook ?>
+				<?php do_atomic( 'after_entry' ); // hybrid_after_entry ?>
 
 			</div><!-- .hentry -->
 
@@ -48,14 +38,12 @@ get_header(); ?>
 
 		<?php else: ?>
 
-			<p class="no-data">
-				<?php _e( 'Apologies, but no results were found.', 'hybrid' ); ?>
-			</p><!-- .no-data -->
+			<?php get_template_part( 'loop-error' ); // Loads the loop-error.php template. ?>
 
 		<?php endif; ?>
 
-		<?php hybrid_after_content(); // After content hook ?>
+		<?php do_atomic( 'after_content' ); // hybrid_after_content ?>
 
 	</div><!-- .content .hfeed -->
 
-<?php get_footer(); ?>
\ No newline at end of file
+<?php get_footer(); // Loads the footer.php template. ?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/attachment.php b/wp-content/themes/hybrid/attachment.php
index 9a8f6f2a4..b14a3d6ca 100644
--- a/wp-content/themes/hybrid/attachment.php
+++ b/wp-content/themes/hybrid/attachment.php
@@ -5,59 +5,74 @@
  * The attachment template is a general template that displays attachments if no other 
  * attachment-type template is found.  Also see application.php, audio.php, image.php, 
  * text.php, and video.php.
- * @link http://themehybrid.com/themes/hybrid/attachments
- * @link http://codex.wordpress.org/Using_Image_and_File_Attachments
  *
  * @package Hybrid
  * @subpackage Template
+ * @link http://themehybrid.com/themes/hybrid/attachments
+ * @link http://codex.wordpress.org/Using_Image_and_File_Attachments
  */
 
-get_header(); ?>
+get_header(); // Loads the header.php template. ?>
 
 	<div id="content" class="hfeed content">
 
-		<?php hybrid_before_content(); // Before content hook ?>
+		<?php do_atomic( 'before_content' ); // hybrid_before_content ?>
 
 		<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
 
 			<div id="post-<?php the_ID(); ?>" class="<?php hybrid_entry_class(); ?>">
 
-				<?php hybrid_before_entry(); // Before entry hook ?>
+				<?php do_atomic( 'before_entry' ); // hybrid_before_entry ?>
 
 				<div class="entry-content">
 
-					<?php hybrid_attachment(); ?>
+					<?php if ( wp_attachment_is_image( get_the_ID() ) ) : ?>
+
+						<p class="attachment-image">
+							<?php echo wp_get_attachment_image( get_the_ID(), 'full', false, array( 'class' => 'aligncenter' ) ); ?>
+						</p><!-- .attachment-image -->
 
-					<?php the_content( sprintf( __( 'Continue reading %1$s', 'hybrid' ), the_title( ' "', '"', false ) ) ); ?>
+					<?php else : ?>
 
-					<p class="download">
-						<a href="<?php echo wp_get_attachment_url(); ?>" title="<?php the_title_attribute(); ?>" rel="enclosure" type="<?php echo get_post_mime_type(); ?>"><?php printf( __( 'Download &quot;%1$s&quot;', 'hybrid' ), the_title( '<span class="fn">', '</span>', false) ); ?></a>
-					</p><!-- .download -->
+						<?php hybrid_attachment(); // Function for handling non-image attachments. ?>
 
-					<?php wp_link_pages( array( 'before' => '<p class="page-links pages">' . __( 'Pages:', 'hybrid' ), 'after' => '</p>' ) ); ?>
+						<p class="download">
+							<a href="<?php echo wp_get_attachment_url(); ?>" title="<?php the_title_attribute(); ?>" rel="enclosure" type="<?php echo get_post_mime_type(); ?>"><?php printf( __( 'Download &quot;%1$s&quot;', hybrid_get_textdomain() ), the_title( '<span class="fn">', '</span>', false) ); ?></a>
+						</p><!-- .download -->
+
+					<?php endif; ?>
+
+					<?php the_content( sprintf( __( 'Continue reading %1$s', hybrid_get_textdomain() ), the_title( ' "', '"', false ) ) ); ?>
+
+					<?php wp_link_pages( array( 'before' => '<p class="page-links pages">' . __( 'Pages:', hybrid_get_textdomain() ), 'after' => '</p>' ) ); ?>
 
 				</div><!-- .entry-content -->
 
-				<?php hybrid_after_entry(); // After entry hook ?>
+				<?php if ( wp_attachment_is_image( get_the_ID() ) ) : ?>
+					<p class="navigation-attachment">
+						<span class="alignleft"><?php previous_image_link(); ?></span>
+						<span class="alignright"><?php next_image_link(); ?></span>
+					</p><!-- .navigation-attachment -->
+				<?php endif; ?>
+
+				<?php do_atomic( 'after_entry' ); // hybrid_after_entry ?>
 
 			</div><!-- .hentry -->
 
-			<?php hybrid_after_singular(); // After singular hook ?>
+			<?php do_atomic( 'after_singular' ); // hybrid_after_singular ?>
 
-			<?php comments_template( '/comments.php', true ); ?>
+			<?php comments_template( '/comments.php', true ); // Loads the comments.php template ?>
 
 			<?php endwhile; ?>
 
 		<?php else: ?>
 
-			<p class="no-data">
-				<?php _e( 'Apologies, but no results were found.', 'hybrid' ); ?>
-			</p><!-- .no-data -->
+			<?php get_template_part( 'loop-error' ); // Loads the loop-error.php template. ?>
 
 		<?php endif; ?>
 
-		<?php hybrid_after_content(); // After content hook ?>
+		<?php do_atomic( 'after_content' ); // hybrid_after_content ?>
 
 	</div><!-- .content .hfeed -->
 
-<?php get_footer(); ?>
\ No newline at end of file
+<?php get_footer(); // Loads the footer.php template. ?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/comment.php b/wp-content/themes/hybrid/comment.php
index 931a887bc..f1b5a4b26 100644
--- a/wp-content/themes/hybrid/comment.php
+++ b/wp-content/themes/hybrid/comment.php
@@ -15,16 +15,16 @@
 
 	<li id="comment-<?php comment_ID(); ?>" class="<?php hybrid_comment_class(); ?>">
 
-		<?php hybrid_before_comment(); // Before comment hook ?>
+		<?php do_atomic( 'before_comment' ); // hybrid_before_comment ?>
 
 		<div class="comment-text">
 			<?php if ( '0' == $comment->comment_approved ) : ?>
-				<p class="alert moderation"><?php _e( 'Your comment is awaiting moderation.', 'hybrid' ); ?></p>
+				<p class="alert moderation"><?php _e( 'Your comment is awaiting moderation.', hybrid_get_textdomain() ); ?></p>
 			<?php endif; ?>
 
 			<?php comment_text( $comment->comment_ID ); ?>
 		</div><!-- .comment-text -->
 
-		<?php hybrid_after_comment(); // After comment hook ?>
+		<?php do_atomic( 'after_comment' ); // hybrid_after_comment ?>
 
 	<?php /* No closing </li> is needed.  WordPress will know where to add it. */ ?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/comments.php b/wp-content/themes/hybrid/comments.php
index f95a177df..8b93d82c8 100644
--- a/wp-content/themes/hybrid/comments.php
+++ b/wp-content/themes/hybrid/comments.php
@@ -8,21 +8,15 @@
  * @package Hybrid
  * @subpackage Template
  */
-	if ( 'comments.php' == basename( $_SERVER['SCRIPT_FILENAME'] ) )
-		die( __( 'Please do not load this page directly. Thanks!', 'hybrid' ) );
 
-	if ( !post_type_supports( get_post_type(), 'comments' ) || ( !have_comments() && !comments_open() && !pings_open() ) )
-		return;
+/* Kill the page if trying to access this template directly. */
+if ( 'comments.php' == basename( $_SERVER['SCRIPT_FILENAME'] ) )
+	die( __( 'Please do not load this page directly. Thanks!', hybrid_get_textdomain() ) );
 
-	if ( post_password_required() ) : ?>
-
-		<h3 class="comments-header"><?php _e( 'Password Protected', 'hybrid' ); ?></h3>
-
-		<p class="alert password-protected">
-			<?php _e( 'Enter the password to view comments.', 'hybrid' ); ?>
-		</p><!-- .alert .password-protected -->
-
-	<?php endif; ?>
+/* If a post password is required or no comments are given and comments/pings are closed, return. */
+if ( post_password_required() || ( !have_comments() && !comments_open() && !pings_open() ) )
+	return;
+?>
 
 <div id="comments-template">
 
@@ -30,18 +24,18 @@
 
 		<div id="comments">
 
-			<h3 id="comments-number" class="comments-header"><?php comments_number( sprintf( __( 'No responses to %1$s', 'hybrid' ), the_title( '&#8220;', '&#8221;', false ) ), sprintf( __( 'One response to %1$s', 'hybrid' ), the_title( '&#8220;', '&#8221;', false ) ), sprintf( __( '%1$s responses to %2$s', 'hybrid' ), '%', the_title( '&#8220;', '&#8221;', false ) ) ); ?></h3>
+			<h3 id="comments-number" class="comments-header"><?php comments_number( sprintf( __( 'No responses to %1$s', hybrid_get_textdomain() ), the_title( '&#8220;', '&#8221;', false ) ), sprintf( __( 'One response to %1$s', hybrid_get_textdomain() ), the_title( '&#8220;', '&#8221;', false ) ), sprintf( __( '%1$s responses to %2$s', hybrid_get_textdomain() ), '%', the_title( '&#8220;', '&#8221;', false ) ) ); ?></h3>
 
-			<?php hybrid_before_comment_list(); // Before comment list hook ?>
+			<?php do_atomic( 'before_comment_list' ); // Before comment list hook ?>
 
 			<ol class="comment-list">
 				<?php wp_list_comments( hybrid_list_comments_args() ); ?>
 			</ol><!-- .comment-list -->
 
-			<?php hybrid_after_comment_list(); // After comment list hook ?>
+			<?php do_atomic( 'after_comment_list' ); // After comment list hook ?>
 
 			<?php if ( get_option( 'page_comments' ) ) : ?>
-				<div class="comment-navigation paged-navigation">
+				<div class="comment-navigation comment-pagination paged-navigation">
 					<?php paginate_comments_links(); ?>
 				</div><!-- .comment-navigation -->
 			<?php endif; ?>
@@ -53,15 +47,9 @@
 		<?php if ( pings_open() && !comments_open() ) : ?>
 
 			<p class="comments-closed pings-open">
-				<?php printf( __( 'Comments are closed, but <a href="%1$s" title="Trackback URL for this post">trackbacks</a> and pingbacks are open.', 'hybrid' ), trackback_url( '0' ) ); ?>
+				<?php printf( __( 'Comments are closed, but <a href="%1$s" title="Trackback URL for this post">trackbacks</a> and pingbacks are open.', hybrid_get_textdomain() ), trackback_url( '0' ) ); ?>
 			</p><!-- .comments-closed .pings-open -->
 
-		<?php elseif ( !comments_open() ) : ?>
-
-			<p class="comments-closed">
-				<?php _e( 'Comments are closed.', 'hybrid' ); ?>
-			</p><!-- .comments-closed -->
-
 		<?php endif; ?>
 
 	<?php endif; ?>
diff --git a/wp-content/themes/hybrid/css/2c-l-fixed.css b/wp-content/themes/hybrid/css/2c-l-fixed.css
new file mode 100644
index 000000000..a71fa92cc
--- /dev/null
+++ b/wp-content/themes/hybrid/css/2c-l-fixed.css
@@ -0,0 +1 @@
+#body-container{overflow:hidden;width:960px;margin:0 auto}#container{overflow:hidden;float:left;width:960px}.content{overflow:hidden;float:left;width:620px}.no-widgets .content,.no-default-widgets .content{width:960px}#primary{position:relative;float:right;width:300px}#secondary{position:relative;clear:right;float:right;width:300px}#subsidiary{overflow:hidden}#subsidiary .widget{overflow:hidden;float:left;width:300px;margin:0 20px 0 0}#footer-container{clear:both;overflow:hidden}#footer{clear:both;overflow:hidden}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/css/2c-l-fixed.dev.css b/wp-content/themes/hybrid/css/2c-l-fixed.dev.css
new file mode 100644
index 000000000..f9dfd871e
--- /dev/null
+++ b/wp-content/themes/hybrid/css/2c-l-fixed.dev.css
@@ -0,0 +1,62 @@
+/**
+ * Two columns with content floated left.
+ *
+ * @since 0.6
+ * @package Hybrid
+ * @subpackage CSS
+ */
+
+#body-container {
+	overflow: hidden;
+	width: 960px;
+	margin: 0 auto;
+	}
+
+#container {
+	overflow: hidden;
+	float: left;
+	width: 960px;
+	}
+
+.content {
+	overflow: hidden;
+	float: left;
+	width: 620px;
+	}
+.no-widgets .content, .no-default-widgets .content {
+	width: 960px;
+	}
+
+#primary {
+	position: relative;
+	float: right;
+	width: 300px;
+	}
+
+#secondary {
+	position: relative;
+	clear: right;
+	float: right;
+	width: 300px;
+	}
+
+#subsidiary {
+	overflow: hidden;
+	}
+
+#subsidiary .widget {
+	overflow: hidden;
+	float: left;
+	width: 300px;
+	margin: 0 20px 0 0;
+	}
+
+#footer-container {
+	clear: both;
+	overflow: hidden;
+	}
+
+#footer {
+	clear: both;
+	overflow: hidden;
+	}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/css/2c-r-fixed.css b/wp-content/themes/hybrid/css/2c-r-fixed.css
new file mode 100644
index 000000000..e4c6e30a0
--- /dev/null
+++ b/wp-content/themes/hybrid/css/2c-r-fixed.css
@@ -0,0 +1 @@
+#body-container{overflow:hidden;width:960px;margin:0 auto}#container{overflow:hidden;float:left;width:960px}.content{overflow:hidden;float:right;width:620px}.no-widgets .content,.no-default-widgets .content{width:960px}#primary{float:left;width:300px}#secondary{clear:left;float:left;width:300px}#subsidiary{overflow:hidden}#subsidiary .widget{overflow:hidden;float:left;width:300px;margin:0 20px 0 0}#footer-container{clear:both;overflow:hidden}#footer{clear:both;overflow:hidden}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/css/2c-r-fixed.dev.css b/wp-content/themes/hybrid/css/2c-r-fixed.dev.css
new file mode 100644
index 000000000..18a04ff1c
--- /dev/null
+++ b/wp-content/themes/hybrid/css/2c-r-fixed.dev.css
@@ -0,0 +1,60 @@
+/**
+ * Two columns with content floated right.
+ *
+ * @since 0.6
+ * @package Hybrid
+ * @subpackage CSS
+ */
+
+#body-container {
+	overflow: hidden;
+	width: 960px;
+	margin: 0 auto;
+	}
+
+#container {
+	overflow: hidden;
+	float: left;
+	width: 960px;
+	}
+
+.content {
+	overflow: hidden;
+	float: right;
+	width: 620px;
+	}
+.no-widgets .content, .no-default-widgets .content {
+	width: 960px;
+	}
+
+#primary {
+	float: left;
+	width: 300px;
+	}
+
+#secondary {
+	clear: left;
+	float: left;
+	width: 300px;
+	}
+
+#subsidiary {
+	overflow: hidden;
+	}
+
+#subsidiary .widget {
+	overflow: hidden;
+	float: left;
+	width: 300px;
+	margin: 0 20px 0 0;
+	}
+
+#footer-container {
+	clear: both;
+	overflow: hidden;
+	}
+
+#footer {
+	clear: both;
+	overflow: hidden;
+	}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/css/3c-c-fixed.css b/wp-content/themes/hybrid/css/3c-c-fixed.css
new file mode 100644
index 000000000..5d6550d26
--- /dev/null
+++ b/wp-content/themes/hybrid/css/3c-c-fixed.css
@@ -0,0 +1 @@
+body{min-width:600px}#body-container{overflow:hidden;width:960px;margin:0 auto}#primary-menu{position:relative;z-index:100}#container{position:relative;clear:both;overflow:hidden;padding-left:240px; padding-right:240px; z-index:1}.no-widgets #container,.no-default-widgets #container{width:960px;padding-left:0;padding-right:0}.content,#primary,#secondary{position:relative;float:left;z-index:1}.content{width:100%}.no-widgets .content,.no-default-widgets .content{width:960px}#primary{width:220px; right:240px; margin-left:-100%}#secondary{width:220px; margin-right:-240px; margin-left:20px}* html #secondary{left:240px}#subsidiary{overflow:hidden}#subsidiary .widget{overflow:hidden;float:left;width:300px;margin:0 20px 0 0}#footer-container{clear:both;overflow:hidden}#footer{clear:both}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/css/3c-c-fixed.dev.css b/wp-content/themes/hybrid/css/3c-c-fixed.dev.css
new file mode 100644
index 000000000..3dc274870
--- /dev/null
+++ b/wp-content/themes/hybrid/css/3c-c-fixed.dev.css
@@ -0,0 +1,84 @@
+/**
+ * Holy Grail Stylesheet.
+ * Creates the Holy Grail (fixed width) of three-column layouts.
+ * Primary / Content / Secondary
+ *
+ * @link http://www.alistapart.com/articles/holygrail
+ * @author Matthew Levine
+ *
+ * @since 0.6
+ * @package Hybrid
+ * @subpackage CSS
+ */
+
+body {
+	min-width: 600px;      /* 2x LC width + RC width */
+	}
+#body-container {
+	overflow: hidden;
+	width: 960px;
+	margin: 0 auto;
+	}
+#primary-menu {
+	position: relative;
+	z-index: 100;
+	}
+#container {
+	position: relative;
+	clear: both;
+	overflow: hidden;
+	padding-left: 240px;   /* LC width */
+	padding-right: 240px;  /* RC width */
+	z-index: 1;
+	}
+.no-widgets #container, .no-default-widgets #container {
+	width: 960px;
+	padding-left: 0;
+	padding-right: 0;
+	}
+.content, #primary, #secondary {
+	position: relative;
+	float: left;
+	z-index: 1;
+	}
+.content {
+	width: 100%;
+	}
+.no-widgets .content, .no-default-widgets .content {
+	width: 960px;
+	}
+#primary {
+	width: 220px;          /* LC width */
+	right: 240px;          /* LC width */
+	margin-left: -100%;
+	}
+#secondary {
+	width: 220px;          /* RC width */
+	margin-right: -240px;  /* RC width */
+	margin-left: 20px;
+	}
+
+/*** IE6 Fix ***/
+* html #secondary {
+	left: 240px;           /* RC width */
+	}
+
+#subsidiary {
+	overflow: hidden;
+	}
+
+#subsidiary .widget {
+	overflow: hidden;
+	float: left;
+	width: 300px;
+	margin: 0 20px 0 0;
+	}
+
+#footer-container {
+	clear: both;
+	overflow: hidden;
+	}
+
+#footer {
+	clear: both;
+	}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/css/3c-l-fixed.css b/wp-content/themes/hybrid/css/3c-l-fixed.css
new file mode 100644
index 000000000..8c2604419
--- /dev/null
+++ b/wp-content/themes/hybrid/css/3c-l-fixed.css
@@ -0,0 +1 @@
+#body-container{overflow:hidden;width:960px;margin:0 auto}#container{overflow:hidden;float:left;width:960px}.content{overflow:hidden;float:left;width:520px}.no-widgets .content,.no-default-widgets .content{width:960px}#primary{overflow:hidden;float:right;width:190px}#secondary{overflow:hidden;float:right;width:190px;margin-right:20px}#subsidiary{overflow:hidden}#subsidiary .widget{overflow:hidden;float:left;width:300px;margin:0 20px 0 0}#footer-container{clear:both;overflow:hidden}#footer{clear:both}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/css/3c-l-fixed.dev.css b/wp-content/themes/hybrid/css/3c-l-fixed.dev.css
new file mode 100644
index 000000000..955dd8459
--- /dev/null
+++ b/wp-content/themes/hybrid/css/3c-l-fixed.dev.css
@@ -0,0 +1,61 @@
+/**
+ * Three columns with content floated left.
+ *
+ * @since 0.6
+ * @package Hybrid
+ * @subpackage CSS
+ */
+
+#body-container {
+	overflow: hidden;
+	width: 960px;
+	margin: 0 auto;
+	}
+
+#container {
+	overflow: hidden;
+	float: left;
+	width: 960px;
+	}
+
+.content {
+	overflow: hidden;
+	float: left;
+	width: 520px;
+	}
+.no-widgets .content, .no-default-widgets .content {
+	width: 960px;
+	}
+
+#primary {
+	overflow: hidden;
+	float: right;
+	width: 190px;
+	}
+
+#secondary {
+	overflow: hidden;
+	float: right;
+	width: 190px;
+	margin-right: 20px;
+	}
+
+#subsidiary {
+	overflow: hidden;
+	}
+
+#subsidiary .widget {
+	overflow: hidden;
+	float: left;
+	width: 300px;
+	margin: 0 20px 0 0;
+	}
+
+#footer-container {
+	clear: both;
+	overflow: hidden;
+	}
+
+#footer {
+	clear: both;
+	}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/css/3c-r-fixed.css b/wp-content/themes/hybrid/css/3c-r-fixed.css
new file mode 100644
index 000000000..b24ad193b
--- /dev/null
+++ b/wp-content/themes/hybrid/css/3c-r-fixed.css
@@ -0,0 +1 @@
+#body-container{overflow:hidden;width:960px;margin:0 auto}#container{overflow:hidden;float:left;width:960px}.content{overflow:hidden;float:right;width:520px}.no-widgets .content,.no-default-widgets .content{width:960px}#primary{overflow:hidden;float:left;width:190px}#secondary{overflow:hidden;float:left;width:190px;margin-left:20px}#subsidiary{overflow:hidden}#subsidiary .widget{overflow:hidden;float:left;width:300px;margin:0 20px 0 0}#footer-container{clear:both;overflow:hidden}#footer{clear:both}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/css/3c-r-fixed.dev.css b/wp-content/themes/hybrid/css/3c-r-fixed.dev.css
new file mode 100644
index 000000000..3dfbb6392
--- /dev/null
+++ b/wp-content/themes/hybrid/css/3c-r-fixed.dev.css
@@ -0,0 +1,62 @@
+/**
+ * Three columns with content floated left.
+ *
+ * @since 0.6
+ * @package Hybrid
+ * @subpackage CSS
+ */
+
+#body-container {
+	overflow: hidden;
+	width: 960px;
+	margin: 0 auto;
+	}
+
+#container {
+	overflow: hidden;
+	float: left;
+	width: 960px;
+	}
+
+.content {
+	overflow: hidden;
+	float: right;
+	width: 520px;
+	}
+
+.no-widgets .content, .no-default-widgets .content {
+	width: 960px;
+	}
+
+#primary {
+	overflow: hidden;
+	float: left;
+	width: 190px;
+	}
+
+#secondary {
+	overflow: hidden;
+	float: left;
+	width: 190px;
+	margin-left: 20px;
+	}
+
+#subsidiary {
+	overflow: hidden;
+	}
+
+#subsidiary .widget {
+	overflow: hidden;
+	float: left;
+	width: 300px;
+	margin: 0 20px 0 0;
+	}
+
+#footer-container {
+	clear: both;
+	overflow: hidden;
+	}
+
+#footer {
+	clear: both;
+	}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/css/holy-grail-fluid.css b/wp-content/themes/hybrid/css/holy-grail-fluid.css
new file mode 100644
index 000000000..f6f4a47dd
--- /dev/null
+++ b/wp-content/themes/hybrid/css/holy-grail-fluid.css
@@ -0,0 +1,5 @@
+/**
+ * @deprecated 0.9.0 - This file is for backwards compatibility with the Hybrid parent theme.  It will
+ * be removed in a future version.
+*/
+body{min-width:600px}#container{overflow:hidden;padding-left:200px; padding-right:200px}.content,#primary,#secondary{position:relative;float:left;padding-bottom:20010px; margin-bottom:-20000px}.content{width:100%}#primary{width:200px; right:200px; margin-left:-100%}#secondary{width:200px; margin-right:-200px}#footer{clear:both}* html #secondary{left:200px}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/css/plugins.css b/wp-content/themes/hybrid/css/plugins.css
new file mode 100644
index 000000000..a00030342
--- /dev/null
+++ b/wp-content/themes/hybrid/css/plugins.css
@@ -0,0 +1,5 @@
+/**
+ * @deprecated 0.9.0 - This file is for backwards compatibility with the Hybrid parent theme.  It will
+ * be removed in a future version.
+*/
+.wp-pagenavi .pages{margin:2px 3px 2px 0;font-style:italic}.wp-pagenavi .current{margin:2px;padding:1px 6px;font-weight:bold}.wp-pagenavi .extend{margin:2px}.wp-pagenavi a{margin:0 2px;padding:1px 6px;font-style:italic;border:1px solid #ccc}.WP-EmailIcon{padding:0;margin:0;border:none}.comment_license{font-style:italic}img#wpstats{overflow:hidden !important;width:0 !important;height:0 !important;padding:0 !important;margin:0 !important}.contact-form{margin-bottom:21px}.contact-form legend{display:none}.contact-form .form-input input{display:block;margin-bottom:6px;padding:3px 6px;width:300px}.contact-form label{font-size:.9em}.contact-form textarea{width:97%;margin-bottom:6px;padding:6px}.contact-form .form-option{margin-bottom:6px}.contact-form .button{width:100px;margin-right:9px;padding:6px 9px}.contact-form .button:hover{cursor:pointer}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/css/print.css b/wp-content/themes/hybrid/css/print.css
new file mode 100644
index 000000000..326b7ff80
--- /dev/null
+++ b/wp-content/themes/hybrid/css/print.css
@@ -0,0 +1,5 @@
+/**
+ * @deprecated 0.9.0 - This file is for backwards compatibility with the Hybrid parent theme.  It will
+ * be removed in a future version.
+*/
+@import url('18px.css');body{font:11pt Cambria,Georgia,Times,'Times New Roman',serif}#body-container{margin:0 auto;padding:0}a,a:visited {color:#3C738C;text-decoration:none}h1,h2,h3,h4,h5,h6{font-family:Georgia,Times,"Times New Roman",serif;color:#444}.post ul{margin-left:27px}blockquote{overflow:hidden;font-style:italic;color:#444;margin:0 0 18px 0;padding:18px 18px 0 18px;border:1px solid #999;background:#ddd}blockquote em{font-style:normal}blockquote.pullquote{width:210px;margin-top:6px;margin-bottom:3px;padding:6px 9px;font-size:18px;text-align:center;color:#333;background:transparent;border-top:3px double #ccc;border-bottom:3px double #ccc}.pullquote p{margin:0}code{padding:0 3px;background:#eee}pre{overflow:auto;padding:9px;background:#eee;border:1px solid #ddd}pre code{padding:0;background:transparent}table{width:100%;background:#5F97B1;border:1px solid #eee}caption{font-size:.8em;font-style:italic;text-align:right;color:#666}td{padding:.3em;border:1px solid #35667c}tr{color:#fff;background:#3e7690}tr.alt,tr.even{background:#437f9b}th{padding:.3em;color:#fff;background:#274958;border:1px solid #35667c}td a,th a{font-weight:bold;color:#eee}.drop-cap{float:left;line-height:33px;margin-right:3px;font-size:42px;font-family:"Warnock Pro","Goudy Old Style",Palatino,"Book Antiqua",Cambria,Georgia,serif;color:#666}.note{padding:6px 9px;background:#eee;border:1px solid #ccc}.warning,.alert{padding:6px 9px;background:#fffbbc;border:1px solid #E6DB55}.error{padding:6px 9px;background:#ffebe8;border:1px solid #C00}.download{padding:6px 9px;background:#EDF2F4;border:1px solid #adbabf}.left,.alignleft{float:left;margin:0 18px 0 0}.right,.alignright{float:right;margin:0 0 0 18px}.center,.aligncenter{display:block;margin:0 auto 18px auto}.block,.alignnone{display:block;margin:0 0 18px 0}.clear{clear:both}span.pullquote{float:none;margin:0}img,a img{padding:5px}.post img{max-width:99%}img.wp-smiley{max-height:12px;margin:0;padding:0;border:none}.wp-caption{padding:6px 1px 0 1px;background:#eee;border:1px solid #ddd;text-align:center}.wp-caption .wp-caption-text{margin:0;padding:0 5px;text-align:right;font-size:.8em;color:#666}.wp-caption img{margin:0 auto;padding:0;border:1px solid #666}.gallery{display:block;text-align:center;margin-bottom:18px !important}.gallery img{border:1px solid #3c738c}.avatar{float:left;width:100px;height:100px;margin-right:18px;background:#3c738c;border:1px solid #999}.thumbnail{float:left;width:100px;height:100px;margin-right:18px;background:#3c738c}#container{margin:0;padding:0}#content{margin:0 auto;padding:0}a:link,a:visited{border-bottom:#999}.entry-title{margin:0 0 5px 0;padding:0}.byline{font-size:10pt;font-style:italic;padding-bottom:10px}.byline .separator{display:none}.entry-meta{font-size:10pt;font-style:italic;color:#333}#footer{padding-top:9px;font-size:9pt;color:#666;border-top:1px solid #eee}.edit{display:none}#footer .credit{display:none}.wp-pagenavi,.navigation-links{display:none}.breadcrumb{display:none}#header{display:none}#navigation{display:none}#primary{display:none}#secondary{display:none}#tertiary{display:none}#subsidiary{display:none}.utility{display:none}.widget{display:none}#comments-template{display:none}.query-count{display:none}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/css/screen.css b/wp-content/themes/hybrid/css/screen.css
new file mode 100644
index 000000000..2d5a31919
--- /dev/null
+++ b/wp-content/themes/hybrid/css/screen.css
@@ -0,0 +1 @@
+.sticky,.bypostauthor{}body{font:normal normal normal 15px/21px Georgia,Times,"Times New Roman",serif;color:#000}#body-container{margin:90px auto 21px auto}a{color:#21759b;text-decoration:none}a:visited{color:#551a8b}a:hover,a:active{color:#d54e21;text-decoration:underline}h1,h2,h3,h4,h5,h6{font-family:Arial,Verdana,sans-serif;color:#000;font-weight:bold}h1{font-size:24px}h2{font-size:21px}h3{font-size:19px}h4{font-size:17px}h5{font-size:15px}h6{font-size:13px}ul{list-style:square}blockquote{font-style:italic;color:#555}blockquote blockquote{color:#777}blockquote em{font-style:normal}pre{padding:9px;background:#f9f9f9;border:1px solid #ccc}code{padding:0 3px;background:#eee}pre code{background:transparent}table{width:100%;border-collapse:separate;border-top:1px solid #ccc;border-left:1px solid #ccc}caption{font-size:.9em;font-style:italic;text-align:right}td,th{padding:3px 6px;border-bottom:1px solid #ccc;border-right:1px solid #ccc}th{background:#eee}.drop-cap{float:left;margin:3px 3px 0 0;font:normal normal normal 47px/35px "Warnock Pro","Goudy Old Style",Palatino,"Book Antiqua",Georgia,serif;color:#333}.note{padding:6px 9px;background:#eee;border:1px solid #ccc}.warning,.alert{padding:6px 9px;background:#fffbbc;border:1px solid #E6DB55}.error{padding:6px 9px;background:#ffebe8;border:1px solid #C00}.download{padding:6px 9px;background:#e7f7d3;border:1px solid #6c3}.breadcrumb{margin:0 0 30px 0;font-size:.9em;font-style:italic;color:#666}.breadcrumb a{color:#111;text-decoration:none}.breadcrumb a:hover{color:#d54e21;text-decoration:underline}.hentry img{max-width:610px;height:auto;padding:4px;border:1px solid #ccc}.no-widgets .hentry img{max-width:950px}img.alignleft,img.alignright{margin-bottom:10px}.thumbnail{float:left;width:100px;height:100px;margin:5px 15px 10px 0}img.wp-smiley{max-width:12px;padding:0;background:transparent;border:none}.wp-caption{max-width:616px;margin-top:6px;padding:6px 1px 3px 1px;border:1px solid #ccc;text-align:center}.wp-caption .wp-caption-text{margin:0;padding:0 5px;text-align:right;font-size:.9em;font-style:italic;color:#666}.wp-caption img{max-width:604px;margin:0 auto;padding:0;border:1px solid #666}.no-widgets .wp-caption{max-width:956px}.no-widgets .wp-caption img{max-width:946px}.gallery img{border:1px solid #ccc}.avatar{float:left;width:100px;height:100px;margin:5px 15px 0 0;padding:4px;border:1px solid #ccc}#header{margin:0 0 40px 0}#site-title{font:normal normal bold 35px/35px Arial,Verdana,sans-serif;margin:0 0 10px 0}#site-title a{color:#000}#site-description{font:normal normal normal 16px/20px Georgia,Times,"Times New Roman",serif;margin:0;color:#666}#primary-menu,#navigation{overflow:visible;height:34px;margin:0 0 60px 0;z-index:100}#primary-menu li,#page-nav li{margin-right:15px}#primary-menu li li,#page-nav li li{margin-right:0}#primary-menu li a,#page-nav li a{padding:8px 15px 8px 15px;color:#111;background:#fff;border:1px solid #ccc}#primary-menu li:hover ul,#primary-menu li.sfHover ul,#page-nav li:hover ul,#page-nav li.sfHover ul{top:32px}#primary-menu li li a,#page-nav li li a{border-top:none;margin-right:0}#primary-menu li ul,#page-nav li ul{background:#fff;border-top:1px solid #ccc}#primary-menu li li:hover ul,#primary-menu li li.sfHover ul,#primary-menu li li li:hover ul,#primary-menu li li li.sfHover ul,#page-nav li li:hover ul,#page-nav li li.sfHover ul,#page-nav li li li:hover ul,#page-nav li li li.sfHover ul {top:-1px}#primary-menu li li li,#page-nav li li li{margin-left:-1px}#container{margin-bottom:21px}.content{margin:0 0 21px 0}.no-widgets .content,.page-template-no-widgets .content{width:960px}.hentry{overflow:hidden;margin:0 0 40px 0}.singular .hentry{margin:0}.loop-meta{overflow:hidden;margin:0 0 40px 0}.loop-title{font:normal normal bold 24px/24px Arial,Verdana,sans-serif}.entry-title{font:normal normal bold 24px/24px Arial,Verdana,sans-serif;margin:0 0 12px 0}.archive .entry-title,.search .entry-title{font-size:21px;margin:0 0 5px 0}.singular-page .entry-title,.singular-attachment .entry-title{margin:0 0 21px 0}.entry-title a{color:#000}.byline{margin:0 0 30px 0;font-style:italic;color:#666}.archive .byline,.search .byline{margin:0 0 5px 0}.entry-content{margin:0 0 10px 0}.entry-meta{clear:both;font-style:italic;color:#666}p.page-links,.comment-pagination{clear:both}.comment-pagination{margin-bottom:21px}p.page-links a,.comment-pagination .page-numbers{margin:0 3px;padding:3px 9px 3px 9px;border:1px solid #ccc}.navigation-links{margin-bottom:21px;font-style:italic}.navigation-links .previous{float:left;max-width:50%}.navigation-links .next{float:right;max-width:50%;text-align:right}.navigation-attachment{overflow:hidden}.widget{overflow:hidden;margin:0 0 15px 0;color:#464646}.widget a{color:#464646;text-decoration:underline}.widget a:hover{color:#d54e21;text-decoration:none}.widget-title{font-size:18px;color:#111}#utility-before-content,#utility-after-content,#utility-after-page,#utility-after-single{margin:0 0 21px 0;padding:20px 20px 0 20px;border:1px solid #ccc}#comments-template{clear:both}.comments-header{font-size:1.2em}.comments-closed{font-style:italic}ol.comment-list,ol.comment-list ol.children{list-style:none;margin:0 0 21px 0}li.comment,li li li.comment,li li li li li.comment,li li li li li li li.comment,li li li li li li li li li.comment,li.pingback,li.trackback{overflow:hidden;margin:0 0 21px 0;padding:21px 21px 0 21px;background:#fff;border:1px solid #ccc}li li.comment,li li li li.comment,li li li li li li.comment,li li li li li li li li.comment,li li li li li li li li li li.comment{background:#f9f9f9}#comments-template .avatar{width:40px;height:40px;float:left;margin-right:15px;padding:0;border:1px solid #666}.comment-meta{margin:10px 0 21px 0;font-size:13px;color:#666}.comment-author{font-size:15px;color:#000}.comment-reply-link,.permalink,.comment-edit-link{font-style:italic;color:#666}.comment-text{clear:left;margin:0 15px}.text-input{display:block;padding:3px 6px;width:97%}#comments-template label{font-size:.9em}textarea{width:98%}#submit{display:inline-block;margin-right:15px;padding:7px 15px 8px 15px;background:#fff;border:1px solid #ccc}#submit:hover{cursor:pointer;background:#f9f9f9}#footer-container{clear:both;margin:0 0 21px 0}#subsidiary{margin:0 0 21px 0}#footer{font-style:italic;color:#444}#footer .copyright{display:inline;float:left;margin-right:9px}.content{float:left;width:620px}#primary{float:right;width:300px}#secondary{clear:right;float:right;width:300px}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/docs/license.txt b/wp-content/themes/hybrid/docs/license.txt
new file mode 100644
index 000000000..63e41a44c
--- /dev/null
+++ b/wp-content/themes/hybrid/docs/license.txt
@@ -0,0 +1,339 @@
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/docs/readme.html b/wp-content/themes/hybrid/docs/readme.html
new file mode 100644
index 000000000..40950eb3e
--- /dev/null
+++ b/wp-content/themes/hybrid/docs/readme.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
+<title>A guide to the Hybrid theme</title>
+
+<style type="text/css">body{width:750px;margin:36px auto 60px auto;font:16px/25px Georgia,Times,'Times New Roman',serif}a:link,a:visited{color:#2f6eb9;text-decoration:none}a:hover,a:active{text-decoration:underline}h1,h2,h3,h4,h5,h6{margin:40px 0 30px 0;color:#000;font-weight:bold;font-family:Arial,sans-serif}h1{margin-top:80px;font-size:2.2em}code{padding:0 3px;background:#eee}pre code{padding:0}pre{padding:9px;background:#eee;border:1px solid #ccc}ul{list-style:square}p.first{font-size:21px}p.second{font-size:15px}ul.space li{margin-bottom:10px}.section{overflow:hidden}.columns-2{float:left;width:350px;margin:0 0 21px 25px}.columns-3{float:left;width:230px;margin:0 0 21px 20px}</style>
+
+</head>
+<body>
+
+<h1>A guide to the Hybrid theme</h1>
+
+<p class="first"><em>Hybrid</em> is a user-friendly, search-engine optimized <em>parent theme</em>, featuring 15 custom page templates and 8 widget-ready areas, allowing you to create any type of site you want.</p>
+
+<p class="second">What this means is that the possibilities are endless.  It is about rethinking how WordPress themes <em>should</em> work.  It looks simple on the outside, but you can do nearly anything with enough creativity.  Everyone from first-time WordPress users to advanced developers and designers can take advantage of this theme.</p>
+
+<h2>What is Hybrid?</h2>
+
+<p>I've been dabbling in the art of creating WordPress themes since 2005 and Web site design a couple of years longer than that. In that time, I've come to realize that the reuse of code is a cornerstone of good development practice. Why code the same things over and over when I can build off the same codebase, continually making it better?</p>
+
+<p><em>Hybrid</em> is a parent theme that focuses on code reuse and upgradability.  What this means is that all of the core functionality is housed within a single theme.  And, any time one wants to make a modification, it should be done within a child theme.  By doing this, the <em>Hybrid</em> parent theme can be upgraded (just like WordPress) without any loss of customizations.</p>
+
+<h2>Features</h2>
+
+<p>The theme has everything you need to get started building your site. Here's a list of some of the features:</p>
+
+<ul>
+	<li>Runs off the brilliant <a href="http://themehybrid.com/hybrid-core" title="Hybrid Core theme framework">Hybrid Core framework</a>.</li>
+	<li>Makes use of standard WordPress functions so that plugins will integrate easily.</li>
+	<li>Dynamic global, post, and comment <acronym title="Cascading Style Sheets">CSS</acronym> classes.</li>
+	<li>Fully localized, so you can run <em>Hybrid</em> in any language.</li>
+	<li>Uses the built-in WordPress menu system. No need to hack your navigation into place.</li>
+	<li>Context-aware action and filter hooks, so you don't have to learn WordPress conditional tags.</li>
+	<li>Some of the most-used filter hooks are shortcode-ready and have accompanying shortcodes.</li>
+	<li>Theme settings page that allows you to add custom meta boxes and settings.</li>
+	<li>A redefined template hierarchy that makes larger sites easier to design for.</li>
+	<li>Ability to create custom templates for any post type in multiple ways.</li>
+	<li>Highly-configurable widgets that give you full control over their display.</li>
+	<li>Has the <a href="http://wordpress.org/extend/plugins/get-the-image" title="Get the Image WordPress plugin">Get the Image</a> plugin built in.</li>
+	<li>Has the <a href="http://wordpress.org/extend/plugins/breadcrumb-trail" title="Breadcrumb Trail WordPress plugin">Breadcrumb Trail</a> plugin built-in.</li>
+	<li>Comes loaded with eight default widget areas.</li>
+	<li>Widget areas are content-aware, meaning that they only appear if they contain active widgets.</li>
+	<li>Widgetized 404 template, which allows you to create a custom 404 error page.</li>
+	<li>And much, much more!</li>
+</ul>
+
+<p>Remember, those are just <em>some</em> of the features.  <em>Hybrid</em> is a foundation that should make it easy to launch nearly any WordPress-powered site.</p>
+
+<h2>Child Themes</h2>
+
+<p>When I call <em>Hybrid</em> a parent theme, I mean it.  It is <em><strong>meant</strong></em> to be used as a base theme to build from.  What this allows us to do is extend it through child themes.</p>
+
+<p>Yes, you can create your own theme.  Even if you're a total <em>noob</em> to WordPress!</p>
+
+<p>Just create a new theme folder in your <code>/wp-content/themes</code> directory.  Call it something like <em>My Hybrid</em> or some other much cooler name.  So, you'd have a directory like <code>/wp-content/themes/my-hybrid</code>.  Then, create a <code>style.css</code> file within your theme folder.  At the top, add this information:</p>
+
+<pre><code>/**
+ * Theme Name: My Hybrid
+ * Theme URI: http://link-to-your-site.com
+ * Description: Describe what your theme should be like.
+ * Version: 0.1
+ * Author: Your Name
+ * Author URI: http://link-to-your-site.com
+ * Tags: Add, Whatever, Tags, You, Want
+ * Template: hybrid
+ */</code></pre>
+
+<p>Now, you have your own theme!  Of course, you might want to style it.</p>
+
+<p>You can import the parent theme's (<em>Hybrid's</em>) default <acronym title="Cascading Style Sheets">CSS</acronym> by adding the following code and modifying from there.  Alternatively, you can start completely from scratch.</p>
+
+<pre><code>/* Import the Hybrid parent theme styles. */
+@import url( '../hybrid/style.css' );</code></pre>
+
+<h2>Theme Support</h2>
+
+<p>The most authoritative source for finding out how to use the theme or do some nifty stuff is the <a href="http://themehybrid.com/themes/hybrid" title="Hybrid theme page">theme documentation</a>.  I'll constantly update it with tutorials and frequently asked questions.</p>
+
+<p>We also have a vibrant community at the <a href="http://themehybrid.com/support" title="Theme Hybrid support forums">Theme Hybrid Support Forums</a> where you can get help with <em>Hybrid</em>-related issues.</p>
+
+<h2>Important Notes</h2>
+
+<p><strong>Page Templates:</strong>  Many of the page templates currently begin with the prefix <code>page-</code>.  This may conflict with your pages by overwriting the default template.  For example, if you have a page named <em>Bookmarks</em>, the <code>page-bookmarks.php</code> template will be used.  Unfortunately, this was a feature added to WordPress <em>after</em> the establishment of a standard template-naming scheme for the theme.  These templates will eventually be renamed to have a prefix of <code>page-template-</code> to avoid the rare conflict.  Right now, the templates exist for backwards compatibility for the 1,000s of current theme users.</p>
+
+<h2>Not enough flexibility?</h2>
+
+<p>The <em>Hybrid</em> theme isn't the greatest invention ever.  It has limitations for more experienced developers, the biggest being the lack of control over the theme structure.  It is a good base for people looking to just use <acronym title="Cascading Style Sheets">CSS</acronym> to quickly put out sites though.</p>
+
+<p>If you're looking for more control than just being able to modify the design, you should definitely check out <a href="http://themehybrid.com/hybrid-core" title="Hybrid Core theme framework">Hybrid Core</a>, which is the theme development framework <em>Hybrid</em> and many other themes are built from.  It gives you full control over the markup, design, and scripts for your theme projects.</p>
+
+<h2>Copyright &amp; License</h2>
+
+<p><em>Hybrid</em> is licensed under the <a href="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html" title="GNU GPL">GNU General Public License</a>, version 2 (<acronym title="GNU General Public License">GPL</acronym>).</p>
+
+<p>This theme is copyrighted to <a href="http://justintadlock.com" title="Justin Tadlock">Justin Tadlock</a> and <a href="http://themehybrid.com" title="Theme Hybrid">Theme Hybrid</a>.</p>
+
+<p>2008&thinsp;&ndash;&thinsp;2011 &copy; Justin Tadlock.  All rights reserved.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/footer.php b/wp-content/themes/hybrid/footer.php
index b705e8003..32aee36ea 100644
--- a/wp-content/themes/hybrid/footer.php
+++ b/wp-content/themes/hybrid/footer.php
@@ -11,28 +11,28 @@
  * @subpackage Template
  */
 ?>
-		<?php hybrid_after_container(); // After container hook ?>
+		<?php do_atomic( 'after_container' ); // hybrid_after_container ?>
 
 	</div><!-- #container -->
 
 	<div id="footer-container">
 
-		<?php hybrid_before_footer(); // Before footer hook ?>
+		<?php do_atomic( 'before_footer' ); // hybrid_before_footer ?>
 
 		<div id="footer">
 
-			<?php hybrid_footer(); // Hybrid footer hook ?>
+			<?php do_atomic( 'footer' ); // hybrid_footer ?>
 
 		</div><!-- #footer -->
 
-		<?php hybrid_after_footer(); // After footer hook ?>
+		<?php do_atomic( 'after_footer' ); // hybrid_after_footer ?>
 
 	</div><!-- #footer-container -->
 
 </div><!-- #body-container -->
 
-<?php wp_footer(); // WordPress footer hook ?>
-<?php hybrid_after_html(); // After HTML hook ?>
+<?php do_atomic( 'after_html' ); // hybrid_after_html ?>
+<?php wp_footer(); // wp_footer ?>
 
 </body>
 </html>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/functions.php b/wp-content/themes/hybrid/functions.php
index e7ea4b4d7..28244ae85 100644
--- a/wp-content/themes/hybrid/functions.php
+++ b/wp-content/themes/hybrid/functions.php
@@ -1,18 +1,405 @@
 <?php
 /**
- * Rather than lumping all theme functions into a single file, this functions file is used for 
- * initializing the theme framework, which activates files in the order that it needs. Users
- * should create a child theme and make changes to its functions.php file (not this one).
+ * The functions file is used to initialize everything in the theme.  It controls how the theme is loaded and 
+ * sets up the supported features, default actions, and default filters.  If making customizations, users 
+ * should create a child theme and make changes to its functions.php file (not this one).  Friends don't let 
+ * friends modify parent theme files. ;)
+ *
+ * Child themes should do their setup on the 'after_setup_theme' hook with a priority of 11 if they want to
+ * override parent theme features.  Use a priority of 9 if wanting to run before the parent theme.
+ *
+ * This program is free software; you can redistribute it and/or modify it under the terms of the GNU 
+ * General Public License version 2, as published by the Free Software Foundation.  You may NOT assume 
+ * that you can use any other version of the GPL.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without 
+ * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * You should have received a copy of the GNU General Public License along with this program; if not, write 
+ * to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
  *
  * @package Hybrid
  * @subpackage Functions
+ * @version 1.0.0
+ * @author Justin Tadlock <justin@justintadlock.com>
+ * @copyright Copyright (c) 2008 - 2011, Justin Tadlock
+ * @link http://themehybrid.com/themes/hybrid
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ */
+
+/* Load the core theme framework. */
+require_once( trailingslashit( TEMPLATEPATH ) . 'library/hybrid.php' );
+$theme = new Hybrid();
+
+/* Do theme setup on the 'after_setup_theme' hook. */
+add_action( 'after_setup_theme', 'hybrid_theme_setup_theme' );
+
+/**
+ * Theme setup function.  This function adds support for theme features and defines the default theme
+ * actions and filters.
+ *
+ * @since 0.9.0
+ */
+function hybrid_theme_setup_theme() {
+	global $content_width;
+
+	/* Get the theme prefix. */
+	$prefix = hybrid_get_prefix();
+
+	/* Add support for framework features. */
+	add_theme_support( 'hybrid-core-menus', array( 'primary' ) );
+	add_theme_support( 'hybrid-core-sidebars', array( 'primary', 'secondary', 'subsidiary', 'before-content', 'after-content', 'after-singular' ) );
+	add_theme_support( 'hybrid-core-widgets' );
+	add_theme_support( 'hybrid-core-shortcodes' );
+	add_theme_support( 'hybrid-core-theme-settings', array( 'about', 'footer' ) );
+	add_theme_support( 'hybrid-core-drop-downs' );
+	add_theme_support( 'hybrid-core-seo' );
+	add_theme_support( 'hybrid-core-template-hierarchy' );
+	add_theme_support( 'hybrid-core-deprecated' );
+
+	/* Add support for framework extensions. */
+	add_theme_support( 'breadcrumb-trail' );
+	add_theme_support( 'custom-field-series' );
+	add_theme_support( 'get-the-image' );
+	add_theme_support( 'post-stylesheets' );
+
+	/* Only add cleaner gallery support if not using child theme. Eventually, all child themes should support this. */
+	if ( 'hybrid' == get_stylesheet() )
+		add_theme_support( 'cleaner-gallery' );
+
+	/* Add support for WordPress features. */
+	add_theme_support( 'automatic-feed-links' );
+
+	/* Register sidebars. */
+	add_action( 'init', 'hybrid_theme_register_sidebars', 11 );
+
+	/* Disables widget areas. */
+	add_filter( 'sidebars_widgets', 'hybrid_theme_remove_sidebars' );
+
+	/* Header actions. */
+	add_action( "{$prefix}_header", 'hybrid_site_title' );
+	add_action( "{$prefix}_header", 'hybrid_site_description' );
+
+	/* Load the primary menu. */
+	add_action( "{$prefix}_after_header", 'hybrid_get_primary_menu' );
+
+	/* Add the primary and secondary sidebars after the container. */
+	add_action( "{$prefix}_after_container", 'hybrid_get_primary' );
+	add_action( "{$prefix}_after_container", 'hybrid_get_secondary' );
+
+	/* Add the breadcrumb trail and before content sidebar before the content. */
+	add_action( "{$prefix}_before_content", 'hybrid_breadcrumb' );
+	add_action( "{$prefix}_before_content", 'hybrid_get_utility_before_content' );
+
+	/* Add the title, byline, and entry meta before and after the entry. */
+	add_action( "{$prefix}_before_entry", 'hybrid_entry_title' );
+	add_action( "{$prefix}_before_entry", 'hybrid_byline' );
+	add_action( "{$prefix}_after_entry", 'hybrid_entry_meta' );
+
+	/* Add the after singular sidebar and custom field series extension after singular views. */
+	add_action( "{$prefix}_after_singular", 'hybrid_get_utility_after_singular' );
+	add_action( "{$prefix}_after_singular", 'custom_field_series' );
+
+	/* Add the after content sidebar and navigation links after the content. */
+	add_action( "{$prefix}_after_content", 'hybrid_get_utility_after_content' );
+	add_action( "{$prefix}_after_content", 'hybrid_navigation_links' );
+
+	/* Add the subsidiary sidebar and footer insert to the footer. */
+	add_action( "{$prefix}_before_footer", 'hybrid_get_subsidiary' );
+	add_action( "{$prefix}_footer", 'hybrid_footer_insert' );
+
+	/* Add the comment avatar and comment meta before individual comments. */
+	add_action( "{$prefix}_before_comment", 'hybrid_avatar' );
+	add_action( "{$prefix}_before_comment", 'hybrid_comment_meta' );
+
+	/* Add Hybrid theme-specific body classes. */
+	add_filter( 'body_class', 'hybrid_theme_body_class' );
+
+	/* Content width. */
+	if ( empty( $content_width ) && !is_active_sidebar( 'primary' ) && !is_active_sidebar( 'secondary' ) )
+		$content_width = 960;
+	elseif ( empty( $content_width ) )
+		$content_width = 620;
+}
+
+/**
+ * Register additional sidebars that are not a part of the core framework and are exclusive to this
+ * theme.
+ *
+ * @since 0.9.0
+ */
+function hybrid_theme_register_sidebars() {
+
+	/* Register the widgets template sidebar. */
+	register_sidebar(
+		array(
+			'id' => 'widgets-template',
+			'name' => __( 'Widgets Template', hybrid_get_textdomain() ),
+			'description' => __( 'Used as the content of the Widgets page template.', hybrid_get_textdomain() ),
+			'before_widget' => '<div id="%1$s" class="widget %2$s widget-%2$s"><div class="widget-inside">',
+			'after_widget' => '</div></div>',
+			'before_title' => '<h3 class="widget-title">',
+			'after_title' => '</h3>'
+		)
+	);
+
+	/* Register the 404 template sidebar. */
+	register_sidebar(
+		array(
+			'id' => 'error-404-template',
+			'name' => __( '404 Template', hybrid_get_textdomain() ),
+			'description' => __( 'Replaces the default 404 error page content.', hybrid_get_textdomain() ),
+			'before_widget' => '<div id="%1$s" class="widget %2$s widget-%2$s"><div class="widget-inside">',
+			'after_widget' => '</div></div>',
+			'before_title' => '<h3 class="widget-title">',
+			'after_title' => '</h3>'
+		)
+	);
+}
+
+/**
+ * Function for adding Hybrid theme <body> classes.
+ *
+ * @since 0.9.0
+ */
+function hybrid_theme_body_class( $classes ) {
+	global $wp_query, $is_lynx, $is_gecko, $is_IE, $is_opera, $is_NS4, $is_safari, $is_chrome;
+
+	/* Singular post classes (deprecated). */
+	if ( is_singular() ) {
+
+		if ( is_page() )
+			$classes[] = "page-{$wp_query->post->ID}"; // Use singular-page-ID
+
+		elseif ( is_singular( 'post' ) )
+			$classes[] = "single-{$wp_query->post->ID}"; // Use singular-post-ID
+	}
+
+	/* Browser detection. */
+	$browsers = array( 'gecko' => $is_gecko, 'opera' => $is_opera, 'lynx' => $is_lynx, 'ns4' => $is_NS4, 'safari' => $is_safari, 'chrome' => $is_chrome, 'msie' => $is_IE );
+	foreach ( $browsers as $key => $value ) {
+		if ( $value ) {
+			$classes[] = $key;
+			break;
+		}
+	}
+
+	/* Hybrid theme widgets detection. */
+	foreach ( array( 'primary', 'secondary', 'subsidiary' ) as $sidebar )
+		$classes[] = ( is_active_sidebar( $sidebar ) ) ? "{$sidebar}-active" : "{$sidebar}-inactive";
+
+	if ( in_array( 'primary-inactive', $classes ) && in_array( 'secondary-inactive', $classes ) && in_array( 'subsidiary-inactive', $classes ) )
+		$classes[] = 'no-widgets';
+
+	/* Return the array of classes. */
+	return $classes;
+}
+
+/**
+ * Displays the breadcrumb trail extension if it's supported.
+ *
+ * @since 0.1.0
+ */
+function hybrid_breadcrumb() {
+	if ( current_theme_supports( 'breadcrumb-trail' ) )
+		breadcrumb_trail( array( 'front_page' => false ) );
+}
+
+/**
+ * Displays the post title.
+ *
+ * @since 0.5.0
+ */
+function hybrid_entry_title() {
+	echo apply_atomic_shortcode( 'entry_title', '[entry-title]' );
+}
+
+/**
+ * Default entry byline for posts.
+ *
+ * @since 0.5.0
+ */
+function hybrid_byline() {
+
+	$byline = '';
+
+	if ( 'post' == get_post_type() && 'link_category' !== get_query_var( 'taxonomy' ) )
+		$byline = '<p class="byline">' . __( 'By [entry-author] on [entry-published] [entry-edit-link before=" | "]', hybrid_get_textdomain() ) . '</p>';
+
+	echo apply_atomic_shortcode( 'byline', $byline );
+}
+
+/**
+ * Displays the default entry metadata.
+ *
+ * @since 0.5.0
+ */
+function hybrid_entry_meta() {
+
+	$meta = '';
+
+	if ( 'post' == get_post_type() )
+		$meta = '<p class="entry-meta">' . __( '[entry-terms taxonomy="category" before="Posted in "] [entry-terms taxonomy="post_tag" before="| Tagged "] [entry-comments-link before="| "]', hybrid_get_textdomain() ) . '</p>';
+
+	elseif ( is_page() && current_user_can( 'edit_page', get_the_ID() ) )
+		$meta = '<p class="entry-meta">[entry-edit-link]</p>';
+
+	echo apply_atomic_shortcode( 'entry_meta', $meta );
+}
+
+/**
+ * Function for displaying a comment's metadata.
+ *
+ * @since 0.7.0
+ */
+function hybrid_comment_meta() {
+	echo apply_atomic_shortcode( 'comment_meta', '<div class="comment-meta comment-meta-data">[comment-author] [comment-published] [comment-permalink before="| "] [comment-edit-link before="| "] [comment-reply-link before="| "]</div>' );
+}
+
+/**
+ * Loads the loop-nav.php template with backwards compability for navigation-links.php.
+ *
+ * @since 0.2.0
+ * @uses locate_template() Checks for template in child and parent theme.
+ */
+function hybrid_navigation_links() {
+	locate_template( array( 'navigation-links.php', 'loop-nav.php' ), true );
+}
+
+/**
+ * Displays the footer insert from the theme settings page.
+ *
+ * @since 0.2.1
+ */
+function hybrid_footer_insert() {
+	$footer_insert = hybrid_get_setting( 'footer_insert' );
+
+	if ( !empty( $footer_insert ) )
+		echo '<div class="footer-insert">' . do_shortcode( $footer_insert ) . '</div>';
+}
+
+/**
+ * Removes all widget areas on the No Widgets page/post template.  No widget templates should come in
+ * the form of $post_type-no-widgets.php.  This function also provides backwards compatibility with the old
+ * no-widgets.php template.
+ *
+ * @since 0.9.0
+ */
+function hybrid_theme_remove_sidebars( $sidebars_widgets ) {
+	global $wp_query;
+
+	if ( is_singular() ) {
+		$template = get_post_meta( $wp_query->post->ID, "_wp_{$wp_query->post->post_type}_template", true );
+
+		if ( 'no-widgets.php' == $template || "{$wp_query->post->post_type}-no-widgets.php" == $template )
+			$sidebars_widgets = array( false );
+	}
+
+	return $sidebars_widgets;
+}
+
+/**
+ * Loads the sidebar-primary.php template.
+ *
+ * @since 0.2.2
+ * @uses get_sidebar() Checks for the template in the child and parent theme.
  */
+function hybrid_get_primary() {
+	get_sidebar( 'primary' );
+}
 
-/* Load the Hybrid class. */
-require_once( TEMPLATEPATH . '/library/classes/hybrid.php' );
+/**
+ * Loads the sidebar-secondary.php template.
+ *
+ * @since 0.2.2
+ * @uses get_sidebar() Checks for the template in the child and parent theme.
+ */
+function hybrid_get_secondary() {
+	get_sidebar( 'secondary' );
+}
 
-/* Initialize the Hybrid framework. */
-$hybrid = new Hybrid();
-$hybrid->init();
+/**
+ * Loads the sidebar-subsidiary.php template.
+ *
+ * @since 0.3.1
+ * @uses get_sidebar() Checks for the template in the child and parent theme.
+ */
+function hybrid_get_subsidiary() {
+	get_sidebar( 'subsidiary' );
+}
+
+/**
+ * Loads the sidebar-before-content.php template.
+ *
+ * @since 0.4.0
+ * @uses get_sidebar() Checks for the template in the child and parent theme.
+ */
+function hybrid_get_utility_before_content() {
+	get_sidebar( 'before-content' );
+}
+
+/**
+ * Loads the sidebar-after-content.php template.
+ *
+ * @since 0.4.0
+ * @uses get_sidebar() Checks for the template in the child and parent theme.
+ */
+function hybrid_get_utility_after_content() {
+	get_sidebar( 'after-content' );
+}
+
+/**
+ * Loads the sidebar-after-singular.php template.
+ *
+ * @since 0.7.0
+ * @uses get_sidebar() Checks for the template in the child and parent theme.
+ */
+function hybrid_get_utility_after_singular() {
+	get_sidebar( 'after-singular' );
+}
+
+/**
+ * Loads the menu-primary.php template.
+ *
+ * @since 0.8.0
+ * @uses get_template_part() Checks for template in child and parent theme.
+ */
+function hybrid_get_primary_menu() {
+	get_template_part( 'menu', 'primary' );
+}
+
+/**
+ * @since 0.7.0
+ * @deprecated 0.9.0
+ */
+function hybrid_disable_styles() {
+	_deprecated_function( __FUNCTION__, '0.9.0' );
+}
+
+/**
+ * @since 0.4.0
+ * @deprecated 0.9.0
+ */
+function hybrid_favicon() {
+	_deprecated_function( __FUNCTION__, '0.9.0' );
+}
+
+/**
+ * @since 0.4.0
+ * @deprecated 0.9.0
+ */
+function hybrid_feed_link( $output, $feed ) {
+	_deprecated_function( __FUNCTION__, '0.9.0' );
+	return $output;
+}
+
+/**
+ * @since 0.4.0
+ * @deprecated 0.9.0
+ */
+function hybrid_other_feed_link( $link ) {
+	_deprecated_function( __FUNCTION__, '0.9.0' );
+	return $link;
+}
 
 ?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/header.php b/wp-content/themes/hybrid/header.php
index 995a23e72..f8319e9e4 100644
--- a/wp-content/themes/hybrid/header.php
+++ b/wp-content/themes/hybrid/header.php
@@ -10,39 +10,42 @@
  * @package Hybrid
  * @subpackage Template
  */
-
-hybrid_doctype(); ?>
-<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes( 'xhtml' ); ?>>
-<head profile="<?php hybrid_profile_uri(); ?>">
+?>
+<!DOCTYPE html>
+<html <?php language_attributes(); ?>>
+<head>
+<meta http-equiv="Content-Type" content="<?php bloginfo( 'html_type' ); ?>; charset=<?php bloginfo( 'charset' ); ?>" />
 <title><?php hybrid_document_title(); ?></title>
 
-<link rel="stylesheet" href="<?php echo get_stylesheet_uri(); ?>" type="text/css" media="screen" />
+<link rel="stylesheet" href="<?php echo get_stylesheet_uri(); ?>" type="text/css" media="all" />
+<link rel="profile" href="http://gmpg.org/xfn/11" />
+<link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>" />
 
-<?php hybrid_head(); // Hybrid head hook ?>
-<?php wp_head(); // WP head hook ?>
+<?php do_atomic( 'head' ); // @deprecated 0.9.0. Use 'wp_head'. ?>
+<?php wp_head(); // wp_head ?>
 
 </head>
 
 <body class="<?php hybrid_body_class(); ?>">
 
-<?php hybrid_before_html(); // Before HTML hook ?>
+<?php do_atomic( 'before_html' ); // hybrid_before_html ?>
 
 <div id="body-container">
 
-	<?php hybrid_before_header(); // Before header hook ?>
+	<?php do_atomic( 'before_header' ); // hybrid_before_header ?>
 
 	<div id="header-container">
 
 		<div id="header">
 
-			<?php hybrid_header(); // Header hook ?>
+			<?php do_atomic( 'header' ); // hybrid_header ?>
 
 		</div><!-- #header -->
 
 	</div><!-- #header-container -->
 
-	<?php hybrid_after_header(); // After header hook ?>
+	<?php do_atomic( 'after_header' ); // hybrid_after_header ?>
 
 	<div id="container">
 
-		<?php hybrid_before_container(); // Before container hook ?>
\ No newline at end of file
+		<?php do_atomic( 'before_container' ); // hybrid_before_container ?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/index.php b/wp-content/themes/hybrid/index.php
index fe3a524e0..44315f7dc 100644
--- a/wp-content/themes/hybrid/index.php
+++ b/wp-content/themes/hybrid/index.php
@@ -2,13 +2,53 @@
 /**
  * Index Template
  *
- * This template should not be shown.  It is a placeholder.
- * Specific templates for each type of content are available.
- * @link http://themehybrid.com/themes/hybrid/template-hierarchy
+ * The index template is the "fallback" template. What this means is that it will be used if a more specific 
+ * template is not found to display the content of a page.
  *
  * @package Hybrid
  * @subpackage Template
+ * @link http://themehybrid.com/themes/hybrid/template-hierarchy
  */
 
-/* Simplicity is bliss. */
-?>
\ No newline at end of file
+get_header(); // Loads the header.php template. ?>
+
+	<div id="content" class="hfeed content">
+
+		<?php do_atomic( 'before_content' ); // hybrid_before_content ?>
+
+		<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
+
+			<div id="post-<?php the_ID(); ?>" class="<?php hybrid_entry_class(); ?>">
+
+				<?php do_atomic( 'before_entry' ); // hybrid_before_entry ?>
+
+				<div class="entry-content">
+					<?php the_content( sprintf( __( 'Continue reading %1$s', hybrid_get_textdomain() ), the_title( ' "', '"', false ) ) ); ?>
+					<?php wp_link_pages( array( 'before' => '<p class="page-links pages">' . __( 'Pages:', hybrid_get_textdomain() ), 'after' => '</p>' ) ); ?>
+				</div><!-- .entry-content -->
+
+				<?php do_atomic( 'after_entry' ); // hybrid_after_entry ?>
+
+			</div><!-- .hentry -->
+
+			<?php if ( is_singular() ) { ?>
+
+				<?php do_atomic( 'after_singular' ); // hybrid_after_singular ?>
+
+				<?php comments_template( '/comments.php', true ); // Loads the comments.php template ?>
+
+			<?php } ?>
+
+			<?php endwhile; ?>
+
+		<?php else: ?>
+
+			<?php get_template_part( 'loop-error' ); // Loads the loop-error.php template. ?>
+
+		<?php endif; ?>
+
+		<?php do_atomic( 'after_content' ); // hybrid_after_content ?>
+
+	</div><!-- .content .hfeed -->
+
+<?php get_footer(); // Loads the footer.php template. ?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/languages/hybrid-en_EN.mo b/wp-content/themes/hybrid/languages/hybrid-en_EN.mo
index 047cd33a95c6de82f68cf5b8fe62ecd3e86ccca6..259ba528764d19478f6ba8f71b21b7f647cf5c30 100644
GIT binary patch
delta 42
ycmZ3*a)f1q3KJL8M73;QLtO()T|-j^LlY}wi;eTT87B)ciLe`5Dd_2OF#rJJ5(#(!

delta 32
ocmX@YvWjJb3eyM1iE7!r2D%1jx<*C{Mut{KmK*1FGcqy&0Gu-jr2qf`

diff --git a/wp-content/themes/hybrid/languages/hybrid-en_EN.po b/wp-content/themes/hybrid/languages/hybrid-en_EN.po
index 27aa8711c..156a7245e 100644
--- a/wp-content/themes/hybrid/languages/hybrid-en_EN.po
+++ b/wp-content/themes/hybrid/languages/hybrid-en_EN.po
@@ -2,7 +2,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Hybrid Theme Framework\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-06-22 21:29-0600\n"
+"POT-Creation-Date: 2011-09-15 14:38-0600\n"
 "PO-Revision-Date: \n"
 "Last-Translator: Justin Tadlock <justin@justintadlock.com>\n"
 "Language-Team:  <justin@justintadlock.com>\n"
@@ -14,1121 +14,1060 @@ msgstr ""
 "X-Poedit-KeywordsList: _e;__;esc_attr_e;esc_attr__;esc_html_e;esc_html__\n"
 "X-Poedit-Basepath: .\n"
 "X-Poedit-SearchPath-0: .\n"
+"X-Poedit-SearchPath-1: ..\n"
 
-#: 404.php:35
+#: ../404.php:33
 msgid "Not Found"
 msgstr ""
 
-#: 404.php:40
+#: ../404.php:38
 #, php-format
 msgid "You tried going to %1$s, and it doesn't exist. All is not lost! You can search for what you're looking for."
 msgstr ""
 
-#: archive.php:21
-msgid "Archives"
-msgstr ""
-
-#: archive.php:25
-msgid "You are browsing the site archives."
-msgstr ""
-
-#: archive.php:52
-#: attachment-application.php:52
-#: attachment-audio.php:54
-#: attachment-image.php:57
-#: attachment-text.php:52
-#: attachment-video.php:52
-#: attachment.php:54
-#: date.php:51
-#: day.php:50
-#: home.php:37
-msgid "Apologies, but no results were found."
-msgstr ""
-
-#: attachment-application.php:29
-#: attachment-audio.php:30
-#: attachment-image.php:33
-#: attachment-text.php:29
-#: attachment-video.php:29
-#: attachment.php:31
-#: home.php:24
+#: ../attachment.php:40
 #, php-format
-msgid "Continue reading %1$s"
+msgid "Download &quot;%1$s&quot;"
 msgstr ""
 
-#: attachment-application.php:32
-#: attachment-audio.php:34
-#: attachment-text.php:32
-#: attachment-video.php:32
-#: attachment.php:34
+#: ../attachment.php:45
+#: ../index.php:26
 #, php-format
-msgid "Download &quot;%1$s&quot;"
+msgid "Continue reading %1$s"
 msgstr ""
 
-#: attachment-application.php:35
-#: attachment-audio.php:37
-#: attachment-image.php:35
-#: attachment-text.php:35
-#: attachment-video.php:35
-#: attachment.php:37
-#: home.php:25
+#: ../attachment.php:47
+#: ../index.php:27
+#: ../page-archives.php:51
+#: ../page-authors.php:56
+#: ../page-biography.php:65
 msgid "Pages:"
 msgstr ""
 
-#: comment.php:22
+#: ../comment.php:22
 msgid "Your comment is awaiting moderation."
 msgstr ""
 
-#: comments.php:12
+#: ../comments.php:14
 msgid "Please do not load this page directly. Thanks!"
 msgstr ""
 
-#: comments.php:19
-msgid "Password Protected"
-msgstr ""
-
-#: comments.php:22
-msgid "Enter the password to view comments."
-msgstr ""
-
-#: comments.php:33
+#: ../comments.php:27
 #, php-format
 msgid "No responses to %1$s"
 msgstr ""
 
-#: comments.php:33
+#: ../comments.php:27
 #, php-format
 msgid "One response to %1$s"
 msgstr ""
 
-#: comments.php:33
+#: ../comments.php:27
 #, php-format
 msgid "%1$s responses to %2$s"
 msgstr ""
 
-#: comments.php:56
+#: ../comments.php:50
 #, php-format
 msgid "Comments are closed, but <a href=\"%1$s\" title=\"Trackback URL for this post\">trackbacks</a> and pingbacks are open."
 msgstr ""
 
-#: comments.php:62
-msgid "Comments are closed."
+#: ../functions.php:137
+msgid "Widgets Template"
 msgstr ""
 
-#: date.php:20
-#: date.php:24
-#: day.php:19
-#: day.php:23
-msgid "F jS, Y"
+#: ../functions.php:138
+msgid "Used as the content of the Widgets page template."
 msgstr ""
 
-#: date.php:24
-#: day.php:23
-#, php-format
-msgid "You are browsing the archive for %1$s."
+#: ../functions.php:150
+msgid "404 Template"
 msgstr ""
 
-#: hour.php:18
-#: hour.php:22
-msgid "g a"
+#: ../functions.php:151
+msgid "Replaces the default 404 error page content."
 msgstr ""
 
-#: minute.php:18
-#: minute.php:23
-msgid "g:i a"
+#: ../functions.php:227
+msgid "By [entry-author] on [entry-published] [entry-edit-link before=\" | \"]"
 msgstr ""
 
-#: minute.php:18
-#, php-format
-msgid "Minute %1$s"
+#: ../functions.php:242
+msgid "[entry-terms taxonomy=\"category\" before=\"Posted in \"] [entry-terms taxonomy=\"post_tag\" before=\"| Tagged \"] [entry-comments-link before=\"| \"]"
 msgstr ""
 
-#: minute.php:18
-#: minute.php:25
-msgid "i"
+#: ../loop-error.php:16
+msgid "Apologies, but no results were found."
 msgstr ""
 
-#: minute.php:25
+#: ../loop-meta.php:83
 #, php-format
-msgid "You are browsing the archive for minute %1$s."
+msgid "You are browsing the search results for &quot;%1$s&quot;"
+msgstr ""
+
+#: ../loop-meta.php:92
+msgid "Archives by date"
+msgstr ""
+
+#: ../loop-meta.php:96
+msgid "You are browsing the site archives by date."
+msgstr ""
+
+#: ../loop-meta.php:120
+msgid "Archives"
 msgstr ""
 
-#: navigation-links.php:17
+#: ../loop-meta.php:124
+msgid "You are browsing the site archives."
+msgstr ""
+
+#: ../loop-nav.php:17
 msgid "&laquo; Return to entry"
 msgstr ""
 
-#: navigation-links.php:23
-#: navigation-links.php:29
+#: ../loop-nav.php:23
+#: ../loop-nav.php:31
 msgid "&laquo; Previous"
 msgstr ""
 
-#: navigation-links.php:24
-#: navigation-links.php:29
+#: ../loop-nav.php:24
+#: ../loop-nav.php:31
 msgid "Next &raquo;"
 msgstr ""
 
-#: page-archives.php:43
+#: ../page-archives.php:37
 msgid "Archives by category"
 msgstr ""
 
-#: page-archives.php:46
-#: page-categories.php:30
+#: ../page-archives.php:40
 msgid "RSS"
 msgstr ""
 
-#: page-archives.php:49
+#: ../page-archives.php:43
 msgid "Archives by month"
 msgstr ""
 
-#: page-biography.php:42
+#: ../page-biography.php:41
 msgid "Nickname:"
 msgstr ""
 
-#: page-biography.php:46
+#: ../page-biography.php:45
 msgid "Website:"
 msgstr ""
 
-#: page-biography.php:50
+#: ../page-biography.php:49
 msgid "AIM:"
 msgstr ""
 
-#: page-biography.php:50
-#: page-biography.php:54
-#: page-biography.php:58
+#: ../page-biography.php:49
+#: ../page-biography.php:53
+#: ../page-biography.php:57
 #, php-format
 msgid "IM with %1$s"
 msgstr ""
 
-#: page-biography.php:54
+#: ../page-biography.php:53
 msgid "Jabber:"
 msgstr ""
 
-#: page-biography.php:58
+#: ../page-biography.php:57
 msgid "Yahoo:"
 msgstr ""
 
-#: page-logged-in.php:51
+#: ../page-logged-in.php:52
 #, php-format
 msgid "You must be <a href=\"%1$s\" title=\"Log in\">logged in</a> to view the content of this page."
 msgstr ""
 
-#: page-logged-in.php:53
+#: ../page-logged-in.php:54
 #, php-format
 msgid "If you're not currently a member, please take a moment to <a href=\"%1$s\" title=\"Register\">register</a>."
 msgstr ""
 
-#: page-sitemap.php:29
+#: ../page-sitemap.php:30
 msgid "Feeds"
 msgstr ""
 
-#: page-sitemap.php:32
+#: ../page-sitemap.php:33
 msgid "RDF/RSS 1.0 feed"
 msgstr ""
 
-#: page-sitemap.php:32
+#: ../page-sitemap.php:33
 msgid "<acronym title=\"Resource Description Framework\">RDF</acronym> <acronym title=\"Really Simple Syndication\">RSS</acronym> 1.0 feed"
 msgstr ""
 
-#: page-sitemap.php:33
+#: ../page-sitemap.php:34
 msgid "RSS 0.92 feed"
 msgstr ""
 
-#: page-sitemap.php:33
+#: ../page-sitemap.php:34
 msgid "<acronym title=\"Really Simple Syndication\">RSS</acronym> 0.92 feed"
 msgstr ""
 
-#: page-sitemap.php:34
+#: ../page-sitemap.php:35
 msgid "RSS 2.0 feed"
 msgstr ""
 
-#: page-sitemap.php:34
+#: ../page-sitemap.php:35
 msgid "<acronym title=\"Really Simple Syndication\">RSS</acronym> 2.0 feed"
 msgstr ""
 
-#: page-sitemap.php:35
+#: ../page-sitemap.php:36
 msgid "Atom feed"
 msgstr ""
 
-#: page-sitemap.php:36
+#: ../page-sitemap.php:37
 msgid "Comments RSS 2.0 feed"
 msgstr ""
 
-#: page-sitemap.php:36
+#: ../page-sitemap.php:37
 msgid "Comments <acronym title=\"Really Simple Syndication\">RSS</acronym> 2.0 feed"
 msgstr ""
 
-#: page-sitemap.php:39
+#: ../page-sitemap.php:40
 msgid "Pages"
 msgstr ""
 
-#: page-sitemap.php:45
+#: ../page-sitemap.php:46
 msgid "Category Archives"
 msgstr ""
 
-#: page-sitemap.php:51
+#: ../page-sitemap.php:52
 msgid "Author Archives"
 msgstr ""
 
-#: page-sitemap.php:57
+#: ../page-sitemap.php:58
 msgid "Yearly Archives"
 msgstr ""
 
-#: page-sitemap.php:63
+#: ../page-sitemap.php:64
 msgid "Monthly Archives"
 msgstr ""
 
-#: page-sitemap.php:69
+#: ../page-sitemap.php:70
 msgid "Weekly Archives"
 msgstr ""
 
-#: page-sitemap.php:75
+#: ../page-sitemap.php:76
 msgid "Daily Archives"
 msgstr ""
 
-#: page-sitemap.php:81
+#: ../page-sitemap.php:82
 msgid "Tag Archives"
 msgstr ""
 
-#: page-sitemap.php:87
+#: ../page-sitemap.php:88
 msgid "Blog Posts"
 msgstr ""
 
-#: page-widgets.php:25
+#: ../page-widgets.php:26
 msgid "Edit"
 msgstr ""
 
-#: search.php:23
-#, php-format
-msgid "You are browsing the search results for &quot;%1$s&quot;"
-msgstr ""
-
-#: searchform.php:18
+#: ../searchform.php:18
 msgid "Search this site..."
 msgstr ""
 
-#: searchform.php:19
+#: ../searchform.php:19
 msgid "Search"
 msgstr ""
 
-#: week.php:19
+#: ../library/admin/meta-box-post-seo.php:30
 #, php-format
-msgid "Week %1$s of %2$s"
+msgid "%s SEO"
 msgstr ""
 
-#: week.php:19
-#: week.php:23
-msgid "W"
+#: ../library/admin/meta-box-post-seo.php:47
+msgid "Document Title:"
 msgstr ""
 
-#: week.php:19
-#: week.php:23
-#: year.php:18
-#: year.php:22
-msgid "Y"
+#: ../library/admin/meta-box-post-seo.php:53
+msgid "Meta Description:"
 msgstr ""
 
-#: week.php:23
-#, php-format
-msgid "You are browsing the archive for week %1$s of %2$s."
+#: ../library/admin/meta-box-post-seo.php:59
+msgid "Meta Keywords:"
 msgstr ""
 
-#: library/admin/meta-box.php:33
-#: library/admin/settings-page.php:35
+#: ../library/admin/meta-box-post-template.php:34
 #, php-format
-msgid "%1$s Settings"
-msgstr ""
-
-#: library/admin/meta-box.php:55
-#: library/classes/widget-archives.php:129
-#: library/classes/widget-authors.php:134
-#: library/classes/widget-bookmarks.php:150
-msgid "Title:"
-msgstr ""
-
-#: library/admin/meta-box.php:56
-#: library/admin/settings-page.php:209
-msgid "Description:"
-msgstr ""
-
-#: library/admin/meta-box.php:57
-msgid "Keywords:"
+msgid "%s Template"
 msgstr ""
 
-#: library/admin/meta-box.php:62
-msgid "Series:"
+#: ../library/admin/meta-box-post-template.php:66
+msgid "No templates exist for this post type."
 msgstr ""
 
-#: library/admin/meta-box.php:65
-msgid "Thumbnail:"
-msgstr ""
-
-#: library/admin/meta-box.php:75
-#: library/admin/meta-box.php:147
-msgid "Template:"
-msgstr ""
-
-#: library/admin/meta-box.php:81
-msgid "Layout:"
-msgstr ""
-
-#: library/admin/settings-page.php:35
-#: library/admin/settings-page.php:305
+#: ../library/admin/meta-box-theme-about.php:27
+#: ../library/admin/meta-box-theme-about.php:32
 #, php-format
-msgid "%1$s Theme Settings"
-msgstr ""
-
-#: library/admin/settings-page.php:67
-#: library/admin/settings-page.php:72
-msgid "Copyright &#169; [the-year] [site-link]."
+msgid "About %1$s"
 msgstr ""
 
-#: library/admin/settings-page.php:67
-msgid "Powered by [wp-link] and [theme-link]."
+#: ../library/admin/meta-box-theme-about.php:62
+msgid "Theme:"
 msgstr ""
 
-#: library/admin/settings-page.php:72
-msgid "Powered by [wp-link], [theme-link], and [child-link]."
+#: ../library/admin/meta-box-theme-about.php:70
+msgid "Version:"
 msgstr ""
 
-#: library/admin/settings-page.php:162
-#: library/admin/settings-page.php:167
-#, php-format
-msgid "About %1$s"
+#: ../library/admin/meta-box-theme-about.php:78
+msgid "Author:"
 msgstr ""
 
-#: library/admin/settings-page.php:171
-msgid "General settings"
+#: ../library/admin/meta-box-theme-about.php:86
+msgid "Description:"
 msgstr ""
 
-#: library/admin/settings-page.php:174
+#: ../library/admin/meta-box-theme-footer.php:24
 msgid "Footer settings"
 msgstr ""
 
-#: library/admin/settings-page.php:201
-msgid "Theme:"
+#: ../library/admin/meta-box-theme-footer.php:37
+msgid "You can add custom <acronym title=\"Hypertext Markup Language\">HTML</acronym> and/or shortcodes, which will be automatically inserted into your theme."
 msgstr ""
 
-#: library/admin/settings-page.php:205
-msgid "Author:"
+#: ../library/admin/meta-box-theme-footer.php:46
+#, php-format
+msgid "Shortcodes: %s"
 msgstr ""
 
-#: library/admin/settings-page.php:227
-msgid "Stylesheets:"
+#: ../library/admin/theme-settings.php:43
+#: ../library/admin/theme-settings.php:162
+#, php-format
+msgid "%1$s Theme Settings"
 msgstr ""
 
-#: library/admin/settings-page.php:230
-msgid "Select this to have the theme automatically include a print stylesheet."
+#: ../library/admin/theme-settings.php:44
+msgid "Theme Settings"
 msgstr ""
 
-#: library/admin/settings-page.php:234
-msgid "JavaScript:"
+#: ../library/admin/theme-settings.php:164
+msgid "Settings saved."
 msgstr ""
 
-#: library/admin/settings-page.php:237
-msgid "Include the drop-down menu JavaScript."
+#: ../library/admin/theme-settings.php:180
+msgid "Update Settings"
 msgstr ""
 
-#: library/admin/settings-page.php:241
-msgid "Menus:"
+#: ../library/admin/theme-settings.php:232
+msgid "Documentation"
 msgstr ""
 
-#: library/admin/settings-page.php:244
-msgid "Use the WordPress 3.0+ menu system? Child themes built prior to <em>Hybrid</em> 0.8 may need to be updated to use this."
+#: ../library/admin/theme-settings.php:236
+msgid "Support"
 msgstr ""
 
-#: library/admin/settings-page.php:248
-msgid "Feeds:"
+#: ../library/classes/widget-archives.php:38
+msgid "An advanced widget that gives you total control over the output of your archives."
 msgstr ""
 
-#: library/admin/settings-page.php:251
-msgid "If you have an alternate feed address, such as one from <a href=\"http://feedburner.com\" title=\"Feedburner\">Feedburner</a>, you can enter it here to have the theme redirect your feed links."
+#: ../library/classes/widget-archives.php:89
+msgid "Select Year"
 msgstr ""
 
-#: library/admin/settings-page.php:253
-msgid "Direct category, tag, search, and author feeds to your alternate feed address?"
+#: ../library/classes/widget-archives.php:92
+msgid "Select Month"
 msgstr ""
 
-#: library/admin/settings-page.php:257
-msgid "Search Engine Optimization"
+#: ../library/classes/widget-archives.php:95
+msgid "Select Week"
 msgstr ""
 
-#: library/admin/settings-page.php:257
-msgid "SEO:"
+#: ../library/classes/widget-archives.php:98
+msgid "Select Day"
 msgstr ""
 
-#: library/admin/settings-page.php:260
-msgid "Are you using an <acronym title=\"Search Engine Optimization\">SEO</acronym> plugin? Select this to disable the theme's meta and indexing features."
+#: ../library/classes/widget-archives.php:101
+msgid "Select Post"
 msgstr ""
 
-#: library/admin/settings-page.php:278
-msgid "Footer Insert:"
+#: ../library/classes/widget-archives.php:163
+msgid "Alphabetical"
 msgstr ""
 
-#: library/admin/settings-page.php:280
-msgid "You can add custom <acronym title=\"Hypertext Markup Language\">HTML</acronym> and/or shortcodes, which will be automatically inserted into your theme."
+#: ../library/classes/widget-archives.php:163
+msgid "Daily"
 msgstr ""
 
-#: library/admin/settings-page.php:282
-msgid "Shortcodes:"
+#: ../library/classes/widget-archives.php:163
+msgid "Monthly"
 msgstr ""
 
-#: library/admin/settings-page.php:307
-msgid "Settings saved."
+#: ../library/classes/widget-archives.php:163
+msgid "Post By Post"
 msgstr ""
 
-#: library/admin/settings-page.php:324
-msgid "Update Settings"
+#: ../library/classes/widget-archives.php:163
+msgid "Weekly"
 msgstr ""
 
-#: library/classes/widget-archives.php:30
-msgid "An advanced widget that gives you total control over the output of your archives."
+#: ../library/classes/widget-archives.php:163
+msgid "Yearly"
 msgstr ""
 
-#: library/classes/widget-archives.php:62
-msgid "Select Year"
+#: ../library/classes/widget-archives.php:166
+msgid "Custom"
 msgstr ""
 
-#: library/classes/widget-archives.php:64
-msgid "Select Month"
+#: ../library/classes/widget-archives.php:166
+msgid "HTML"
 msgstr ""
 
-#: library/classes/widget-archives.php:66
-msgid "Select Week"
+#: ../library/classes/widget-archives.php:166
+msgid "Option"
 msgstr ""
 
-#: library/classes/widget-archives.php:68
-msgid "Select Day"
+#: ../library/classes/widget-archives.php:171
+#: ../library/classes/widget-authors.php:165
+msgid "Title:"
 msgstr ""
 
-#: library/classes/widget-archives.php:70
-msgid "Select Post"
+#: ../library/classes/widget-archives.php:207
+#: ../library/classes/widget-authors.php:213
+msgid "Show post count?"
 msgstr ""
 
-#: library/classes/widget-archives.php:122
-msgid "Alphabetical"
+#: ../library/classes/widget-authors.php:47
+msgid "An advanced widget that gives you total control over the output of your author lists."
 msgstr ""
 
-#: library/classes/widget-archives.php:122
-msgid "Daily"
+#: ../library/classes/widget-authors.php:59
+#: ../library/classes/widget-authors.php:141
+msgid "Authors"
 msgstr ""
 
-#: library/classes/widget-archives.php:122
-msgid "Monthly"
+#: ../library/classes/widget-authors.php:158
+msgid "Ascending"
 msgstr ""
 
-#: library/classes/widget-archives.php:122
-msgid "Post By Post"
+#: ../library/classes/widget-authors.php:158
+msgid "Descending"
 msgstr ""
 
-#: library/classes/widget-archives.php:122
-msgid "Weekly"
+#: ../library/classes/widget-authors.php:159
+msgid "Display Name"
 msgstr ""
 
-#: library/classes/widget-archives.php:122
-msgid "Yearly"
+#: ../library/classes/widget-authors.php:159
+msgid "Email"
 msgstr ""
 
-#: library/classes/widget-archives.php:123
-msgid "Custom"
+#: ../library/classes/widget-authors.php:159
+msgid "ID"
 msgstr ""
 
-#: library/classes/widget-archives.php:123
-msgid "HTML"
+#: ../library/classes/widget-authors.php:159
+msgid "Nice Name"
 msgstr ""
 
-#: library/classes/widget-archives.php:123
-msgid "Option"
+#: ../library/classes/widget-authors.php:159
+msgid "Post Count"
 msgstr ""
 
-#: library/classes/widget-archives.php:165
-#: library/classes/widget-authors.php:162
-msgid "Show post count?"
+#: ../library/classes/widget-authors.php:159
+msgid "Registered"
 msgstr ""
 
-#: library/classes/widget-authors.php:30
-msgid "An advanced widget that gives you total control over the output of your author lists."
+#: ../library/classes/widget-authors.php:159
+msgid "URL"
 msgstr ""
 
-#: library/classes/widget-authors.php:32
-#: library/classes/widget-authors.php:122
-msgid "Authors"
+#: ../library/classes/widget-authors.php:159
+msgid "Login"
 msgstr ""
 
-#: library/classes/widget-authors.php:148
+#: ../library/classes/widget-authors.php:191
 msgid "List"
 msgstr ""
 
-#: library/classes/widget-authors.php:148
+#: ../library/classes/widget-authors.php:191
 msgid "None"
 msgstr ""
 
-#: library/classes/widget-authors.php:158
+#: ../library/classes/widget-authors.php:209
 msgid "<acronym title=\"Hypertext Markup Language\">HTML</acronym>?"
 msgstr ""
 
-#: library/classes/widget-authors.php:166
+#: ../library/classes/widget-authors.php:217
 msgid "Exclude admin?"
 msgstr ""
 
-#: library/classes/widget-authors.php:170
+#: ../library/classes/widget-authors.php:221
 msgid "Show full name?"
 msgstr ""
 
-#: library/classes/widget-authors.php:174
+#: ../library/classes/widget-authors.php:225
 msgid "Hide empty?"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:30
+#: ../library/classes/widget-bookmarks.php:47
 msgid "An advanced widget that gives you total control over the output of your bookmarks (links)."
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:32
-#: library/classes/widget-bookmarks.php:124
+#: ../library/classes/widget-bookmarks.php:59
+#: ../library/classes/widget-bookmarks.php:158
 msgid "Bookmarks"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:141
-#: library/classes/widget-bookmarks.php:143
-msgid "Ascending"
-msgstr ""
-
-#: library/classes/widget-bookmarks.php:141
-#: library/classes/widget-bookmarks.php:143
-msgid "Descending"
-msgstr ""
-
-#: library/classes/widget-bookmarks.php:142
+#: ../library/classes/widget-bookmarks.php:189
+#: ../library/classes/widget-categories.php:194
+#: ../library/classes/widget-tags.php:191
 msgid "Count"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:142
-#: library/classes/widget-bookmarks.php:144
-msgid "ID"
-msgstr ""
-
-#: library/classes/widget-bookmarks.php:142
-#: library/classes/widget-bookmarks.php:144
+#: ../library/classes/widget-bookmarks.php:189
+#: ../library/classes/widget-bookmarks.php:191
+#: ../library/classes/widget-categories.php:194
+#: ../library/classes/widget-tags.php:191
 msgid "Name"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:142
+#: ../library/classes/widget-bookmarks.php:189
+#: ../library/classes/widget-categories.php:194
+#: ../library/classes/widget-pages.php:170
 msgid "Slug"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:144
+#: ../library/classes/widget-bookmarks.php:191
 msgid "Description"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:144
+#: ../library/classes/widget-bookmarks.php:191
 msgid "Length"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:144
+#: ../library/classes/widget-bookmarks.php:191
 msgid "Notes"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:144
+#: ../library/classes/widget-bookmarks.php:191
 msgid "Owner"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:144
+#: ../library/classes/widget-bookmarks.php:191
+#: ../library/classes/widget-tags.php:190
 msgid "Random"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:144
+#: ../library/classes/widget-bookmarks.php:191
 msgid "Rating"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:144
+#: ../library/classes/widget-bookmarks.php:191
 msgid "Rel"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:144
+#: ../library/classes/widget-bookmarks.php:191
 msgid "Target"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:144
+#: ../library/classes/widget-bookmarks.php:191
 msgid "Updated"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:144
-msgid "URL"
-msgstr ""
-
-#: library/classes/widget-bookmarks.php:252
+#: ../library/classes/widget-bookmarks.php:299
 msgid "Categorize?"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:256
+#: ../library/classes/widget-bookmarks.php:303
 msgid "Show description?"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:260
+#: ../library/classes/widget-bookmarks.php:307
 msgid "Hide invisible?"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:264
+#: ../library/classes/widget-bookmarks.php:311
 msgid "Show rating?"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:268
+#: ../library/classes/widget-bookmarks.php:315
 msgid "Show updated?"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:272
+#: ../library/classes/widget-bookmarks.php:319
 msgid "Show images?"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:276
+#: ../library/classes/widget-bookmarks.php:323
 msgid "Show name?"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:280
+#: ../library/classes/widget-bookmarks.php:327
 msgid "Show private?"
 msgstr ""
 
-#: library/classes/widget-calendar.php:30
+#: ../library/classes/widget-calendar.php:47
 msgid "An advanced widget that gives you total control over the output of your calendar."
 msgstr ""
 
-#: library/classes/widget-calendar.php:32
-#: library/classes/widget-calendar.php:79
+#: ../library/classes/widget-calendar.php:59
+#: ../library/classes/widget-calendar.php:114
 msgid "Calendar"
 msgstr ""
 
-#: library/classes/widget-calendar.php:91
+#: ../library/classes/widget-calendar.php:128
 msgid "One-letter abbreviation?"
 msgstr ""
 
-#: library/classes/widget-categories.php:30
+#: ../library/classes/widget-categories.php:47
 msgid "An advanced widget that gives you total control over the output of your category links."
 msgstr ""
 
-#: library/classes/widget-categories.php:32
-#: library/classes/widget-categories.php:126
+#: ../library/classes/widget-categories.php:59
+#: ../library/classes/widget-categories.php:163
 msgid "Categories"
 msgstr ""
 
-#: library/classes/widget-categories.php:143
+#: ../library/classes/widget-categories.php:194
 msgid "Term Group"
 msgstr ""
 
-#: library/classes/widget-categories.php:144
+#: ../library/classes/widget-categories.php:195
 msgid "Atom"
 msgstr ""
 
-#: library/classes/widget-categories.php:144
+#: ../library/classes/widget-categories.php:195
 msgid "RDF"
 msgstr ""
 
-#: library/classes/widget-categories.php:144
+#: ../library/classes/widget-categories.php:195
 msgid "RSS 2.0"
 msgstr ""
 
-#: library/classes/widget-categories.php:249
-#: library/classes/widget-pages.php:230
+#: ../library/classes/widget-categories.php:300
+#: ../library/classes/widget-pages.php:281
 msgid "Hierarchical?"
 msgstr ""
 
-#: library/classes/widget-categories.php:253
+#: ../library/classes/widget-categories.php:304
 msgid "Use description?"
 msgstr ""
 
-#: library/classes/widget-categories.php:257
+#: ../library/classes/widget-categories.php:308
 msgid "Show last update?"
 msgstr ""
 
-#: library/classes/widget-categories.php:261
+#: ../library/classes/widget-categories.php:312
 msgid "Show count?"
 msgstr ""
 
-#: library/classes/widget-nav-menu.php:29
+#: ../library/classes/widget-nav-menu.php:46
 msgid "An advanced widget that gives you total control over the output of your menus."
 msgstr ""
 
-#: library/classes/widget-nav-menu.php:31
+#: ../library/classes/widget-nav-menu.php:58
 msgid "Navigation Menu"
 msgstr ""
 
-#: library/classes/widget-nav-menu.php:97
+#: ../library/classes/widget-nav-menu.php:132
 msgid "Navigation"
 msgstr ""
 
-#: library/classes/widget-pages.php:30
+#: ../library/classes/widget-pages.php:41
 msgid "An advanced widget that gives you total control over the output of your page links."
 msgstr ""
 
-#: library/classes/widget-pages.php:118
+#: ../library/classes/widget-pages.php:170
 msgid "Author"
 msgstr ""
 
-#: library/classes/widget-pages.php:118
+#: ../library/classes/widget-pages.php:170
 msgid "Date"
 msgstr ""
 
-#: library/classes/widget-pages.php:118
+#: ../library/classes/widget-pages.php:170
 msgid "Menu Order"
 msgstr ""
 
-#: library/classes/widget-pages.php:118
-#: library/classes/widget-pages.php:119
+#: ../library/classes/widget-pages.php:170
+#: ../library/classes/widget-pages.php:171
 msgid "Modified"
 msgstr ""
 
-#: library/classes/widget-pages.php:118
+#: ../library/classes/widget-pages.php:170
 msgid "Title"
 msgstr ""
 
-#: library/classes/widget-pages.php:119
+#: ../library/classes/widget-pages.php:171
 msgid "Created"
 msgstr ""
 
-#: library/classes/widget-search.php:30
+#: ../library/classes/widget-search.php:47
 msgid "An advanced widget that gives you total control over the output of your search form."
 msgstr ""
 
-#: library/classes/widget-search.php:110
+#: ../library/classes/widget-search.php:158
 msgid "Search Label:"
 msgstr ""
 
-#: library/classes/widget-search.php:114
+#: ../library/classes/widget-search.php:162
 msgid "Search Text:"
 msgstr ""
 
-#: library/classes/widget-search.php:121
+#: ../library/classes/widget-search.php:169
 msgid "Search Submit:"
 msgstr ""
 
-#: library/classes/widget-search.php:126
+#: ../library/classes/widget-search.php:174
 msgid "Use theme's <code>searchform.php</code>?"
 msgstr ""
 
-#: library/classes/widget-tags.php:30
+#: ../library/classes/widget-tags.php:47
 msgid "An advanced widget that gives you total control over the output of your tags."
 msgstr ""
 
-#: library/classes/widget-tags.php:32
-#: library/classes/widget-tags.php:130
+#: ../library/classes/widget-tags.php:59
+#: ../library/classes/widget-tags.php:161
 msgid "Tags"
 msgstr ""
 
-#: library/classes/widget-tags.php:146
+#: ../library/classes/widget-tags.php:188
 msgid "View"
 msgstr ""
 
-#: library/classes/widget-tags.php:147
+#: ../library/classes/widget-tags.php:189
 msgid "Flat"
 msgstr ""
 
-#: library/classes/widget-tags.php:263
+#: ../library/classes/widget-tags.php:305
 msgid "Pad counts?"
 msgstr ""
 
-#: library/extensions/breadcrumb-trail - Copy.php:50
-msgid "Create an Account"
+#: ../library/extensions/breadcrumb-trail.php:44
+msgid "Browse:"
 msgstr ""
 
-#: library/extensions/breadcrumb-trail - Copy.php:52
-msgid "Activate your Account"
+#: ../library/extensions/breadcrumb-trail.php:47
+msgid "Home"
 msgstr ""
 
-#: library/extensions/breadcrumb-trail - Copy.php:56
-#: Copy.php:59
-msgid "Create a Group"
+#: ../library/extensions/breadcrumb-trail.php:295
+msgid "g:i a"
 msgstr ""
 
-#: library/extensions/breadcrumb-trail - Copy.php:63
-msgid "Create a Blog"
+#: ../library/extensions/breadcrumb-trail.php:298
+#, php-format
+msgid "Minute %1$s"
 msgstr ""
 
-#: library/extensions/breadcrumb-trail.php:40
-msgid "Browse:"
+#: ../library/extensions/breadcrumb-trail.php:298
+msgid "i"
 msgstr ""
 
-#: library/extensions/breadcrumb-trail.php:43
-msgid "Home"
+#: ../library/extensions/breadcrumb-trail.php:301
+msgid "g a"
 msgstr ""
 
-#: library/extensions/breadcrumb-trail.php:197
-msgid "m"
+#: ../library/extensions/breadcrumb-trail.php:312
+#: ../library/extensions/breadcrumb-trail.php:318
+#: ../library/extensions/breadcrumb-trail.php:323
+#: ../library/extensions/breadcrumb-trail.php:328
+#: ../library/extensions/breadcrumb-trail.php:393
+msgid "Y"
 msgstr ""
 
-#: library/extensions/breadcrumb-trail.php:197
-#: library/extensions/breadcrumb-trail.php:208
+#: ../library/extensions/breadcrumb-trail.php:313
+#: ../library/extensions/breadcrumb-trail.php:324
+#: ../library/extensions/breadcrumb-trail.php:397
 msgid "F"
 msgstr ""
 
-#: library/extensions/breadcrumb-trail.php:198
-msgid "j"
+#: ../library/extensions/breadcrumb-trail.php:314
+#: ../library/extensions/breadcrumb-trail.php:401
+msgid "d"
 msgstr ""
 
-#: library/extensions/breadcrumb-trail.php:203
+#: ../library/extensions/breadcrumb-trail.php:319
 #, php-format
 msgid "Week %1$s"
 msgstr ""
 
-#: library/extensions/breadcrumb-trail.php:219
-#: library/functions/context.php:369
+#: ../library/extensions/breadcrumb-trail.php:319
+msgid "W"
+msgstr ""
+
+#: ../library/extensions/breadcrumb-trail.php:335
 #, php-format
 msgid "Search results for &quot;%1$s&quot;"
 msgstr ""
 
-#: library/extensions/breadcrumb-trail.php:223
-#: library/functions/context.php:372
+#: ../library/extensions/breadcrumb-trail.php:339
 msgid "404 Not Found"
 msgstr ""
 
-#: library/extensions/custom-field-series.php:64
+#: ../library/extensions/breadcrumb-trail.php:397
+msgid "F Y"
+msgstr ""
+
+#: ../library/extensions/breadcrumb-trail.php:401
+msgid "F j, Y"
+msgstr ""
+
+#: ../library/extensions/custom-field-series.php:83
 msgid "Articles in this series"
 msgstr ""
 
-#: library/functions/comments.php:147
-msgid "*"
+#: ../library/extensions/custom-field-series.php:125
+msgid "Series"
 msgstr ""
 
-#: library/functions/comments.php:151
-msgid "Email"
+#: ../library/extensions/post-stylesheets.php:115
+#, php-format
+msgid "%s Stylesheet"
+msgstr ""
+
+#: ../library/extensions/theme-layouts.php:201
+msgid "Default"
+msgstr ""
+
+#: ../library/extensions/theme-layouts.php:202
+msgid "One Column"
+msgstr ""
+
+#: ../library/extensions/theme-layouts.php:203
+msgid "Two Columns, Left"
 msgstr ""
 
-#: library/functions/comments.php:152
+#: ../library/extensions/theme-layouts.php:204
+msgid "Two Columns, Right"
+msgstr ""
+
+#: ../library/extensions/theme-layouts.php:205
+msgid "Three Columns, Left"
+msgstr ""
+
+#: ../library/extensions/theme-layouts.php:206
+msgid "Three Columns, Right"
+msgstr ""
+
+#: ../library/extensions/theme-layouts.php:207
+msgid "Three Columns, Center"
+msgstr ""
+
+#: ../library/extensions/theme-layouts.php:241
+#: ../library/extensions/theme-layouts.php:344
+msgid "Layout"
+msgstr ""
+
+#: ../library/extensions/theme-layouts.php:272
+msgid "Layout is a theme-specific structure for the single view of the post."
+msgstr ""
+
+#: ../library/functions/comments.php:163
+msgid "*"
+msgstr ""
+
+#: ../library/functions/comments.php:170
 msgid "Website"
 msgstr ""
 
-#: library/functions/comments.php:157
+#: ../library/functions/comments.php:176
 msgid "Comment"
 msgstr ""
 
-#: library/functions/comments.php:158
+#: ../library/functions/comments.php:177
 #, php-format
 msgid "You must be <a href=\"%1$s\" title=\"Log in\">logged in</a> to post a comment."
 msgstr ""
 
-#: library/functions/comments.php:159
+#: ../library/functions/comments.php:178
 #, php-format
 msgid "Logged in as <a href=\"%1$s\" title=\"%2$s\">%2$s</a>."
 msgstr ""
 
-#: library/functions/comments.php:159
+#: ../library/functions/comments.php:178
+#: ../library/functions/shortcodes.php:114
 msgid "Log out of this account"
 msgstr ""
 
-#: library/functions/comments.php:159
+#: ../library/functions/comments.php:178
 msgid "Log out &raquo;"
 msgstr ""
 
-#: library/functions/comments.php:164
+#: ../library/functions/comments.php:183
 msgid "Leave a Reply"
 msgstr ""
 
-#: library/functions/comments.php:165
+#: ../library/functions/comments.php:184
 #, php-format
 msgid "Leave a Reply to %s"
 msgstr ""
 
-#: library/functions/comments.php:166
+#: ../library/functions/comments.php:185
 msgid "Click here to cancel reply."
 msgstr ""
 
-#: library/functions/comments.php:167
-msgid "Submit"
+#: ../library/functions/comments.php:186
+msgid "Post Comment"
 msgstr ""
 
-#: library/functions/context.php:346
-#: library/functions/context.php:352
-#: library/functions/context.php:355
-#: library/functions/context.php:361
-#: library/functions/context.php:364
+#: ../library/functions/context.php:392
+#: ../library/functions/context.php:398
+#: ../library/functions/context.php:401
+#: ../library/functions/context.php:407
+#: ../library/functions/context.php:410
 #, php-format
 msgid "Archive for %1$s"
 msgstr ""
 
-#: library/functions/context.php:349
+#: ../library/functions/context.php:395
 #, php-format
 msgid "Archive for minute %1$s"
 msgstr ""
 
-#: library/functions/context.php:358
+#: ../library/functions/context.php:401
+msgid "F jS, Y"
+msgstr ""
+
+#: ../library/functions/context.php:404
 #, php-format
 msgid "Archive for week %1$s of %2$s"
 msgstr ""
 
-#: library/functions/context.php:376
+#: ../library/functions/context.php:429
 #, php-format
 msgid "%1$s Page %2$s"
 msgstr ""
 
-#: library/functions/hooks-filters.php:96
-msgid "F Y"
-msgstr ""
-
-#: library/functions/hooks-filters.php:100
+#: ../library/functions/core-seo.php:86
 #, php-format
 msgid "Copyright (c) %1$s"
 msgstr ""
 
-#: library/functions/hooks-filters.php:113
+#: ../library/functions/core-seo.php:103
+#: ../library/functions/shortcodes.php:193
+#: ../library/functions/shortcodes.php:315
 msgid "l, F jS, Y, g:i a"
 msgstr ""
 
-#: library/functions/hooks-filters.php:273
-msgid "<span class=\"byline-prep byline-prep-author\">By</span> [entry-author] <span class=\"byline-prep byline-prep-published\">on</span> [entry-published] [entry-edit-link before=\"| \"]"
+#: ../library/functions/deprecated.php:547
+#, php-format
+msgid "<code>%1$s</code> &mdash; This function has been removed or replaced by another function."
 msgstr ""
 
-#: library/functions/hooks-filters.php:293
-msgid "Posted in"
+#: ../library/functions/settings.php:70
+#: ../library/functions/settings.php:74
+msgid "Copyright &#169; [the-year] [site-link]."
 msgstr ""
 
-#: library/functions/hooks-filters.php:293
-msgid "Tagged"
+#: ../library/functions/settings.php:70
+msgid "Powered by [wp-link], [theme-link], and [child-link]."
 msgstr ""
 
-#: library/functions/menus.php:31
-msgid "Primary Menu"
+#: ../library/functions/settings.php:74
+msgid "Powered by [wp-link] and [theme-link]."
 msgstr ""
 
-#: library/functions/shortcodes.php:77
+#: ../library/functions/shortcodes.php:78
 msgid "Powered by WordPress, state-of-the-art semantic personal publishing platform"
 msgstr ""
 
-#: library/functions/shortcodes.php:77
+#: ../library/functions/shortcodes.php:78
 msgid "WordPress"
 msgstr ""
 
-#: library/functions/shortcodes.php:113
+#: ../library/functions/shortcodes.php:114
 msgid "Log out"
 msgstr ""
 
-#: library/functions/shortcodes.php:115
+#: ../library/functions/shortcodes.php:116
 msgid "Log into this account"
 msgstr ""
 
-#: library/functions/shortcodes.php:115
+#: ../library/functions/shortcodes.php:116
 msgid "Log in"
 msgstr ""
 
-#: library/functions/shortcodes.php:128
+#: ../library/functions/shortcodes.php:129
 #, php-format
 msgid "This page loaded in %1$s seconds with %2$s database queries."
 msgstr ""
 
-#: library/functions/shortcodes.php:179
-#: library/functions/shortcodes.php:368
+#: ../library/functions/shortcodes.php:180
+#: ../library/functions/shortcodes.php:382
 #, php-format
 msgid "Edit %1$s"
 msgstr ""
 
-#: library/functions/shortcodes.php:206
+#: ../library/functions/shortcodes.php:208
 msgid "Leave a response"
 msgstr ""
 
-#: library/functions/shortcodes.php:206
-msgid "1 Response"
+#: ../library/functions/shortcodes.php:208
+#, php-format
+msgid "%1$s Response"
 msgstr ""
 
-#: library/functions/shortcodes.php:206
+#: ../library/functions/shortcodes.php:208
 #, php-format
 msgid "%1$s Responses"
 msgstr ""
 
-#: library/functions/shortcodes.php:213
-#: library/functions/shortcodes.php:215
-#: library/functions/shortcodes.php:217
+#: ../library/functions/shortcodes.php:215
+#: ../library/functions/shortcodes.php:217
+#: ../library/functions/shortcodes.php:219
 #, php-format
 msgid "Comment on %1$s"
 msgstr ""
 
-#: library/functions/shortcodes.php:289
+#: ../library/functions/shortcodes.php:278
+msgid "(Untitled)"
+msgstr ""
+
+#: ../library/functions/shortcodes.php:295
 msgid "Shortlink"
 msgstr ""
 
-#: library/functions/shortcodes.php:309
+#: ../library/functions/shortcodes.php:315
 #, php-format
 msgid "%1$s at %2$s"
 msgstr ""
 
-#: library/functions/shortcodes.php:348
+#: ../library/functions/shortcodes.php:362
 #, php-format
 msgid "Permalink to comment %1$s"
 msgstr ""
 
-#: library/functions/shortcodes.php:348
+#: ../library/functions/shortcodes.php:362
 msgid "Permalink"
 msgstr ""
 
-#: library/functions/shortcodes.php:386
+#: ../library/functions/shortcodes.php:400
 msgid "Reply"
 msgstr ""
 
-#: library/functions/shortcodes.php:387
+#: ../library/functions/shortcodes.php:401
 msgid "Log in to reply."
 msgstr ""
 
-#: library/functions/widgets.php:52
-msgid "Primary"
-msgstr ""
-
-#: library/functions/widgets.php:52
+#: ../library/functions/sidebars.php:77
 msgid "The main (primary) widget area, most often used as a sidebar."
 msgstr ""
 
-#: library/functions/widgets.php:53
-msgid "Secondary"
-msgstr ""
-
-#: library/functions/widgets.php:53
-msgid "The second most important widget area, most often used as a secondary sidebar"
-msgstr ""
-
-#: library/functions/widgets.php:54
-msgid "Subsidiary"
+#: ../library/functions/sidebars.php:81
+msgid "The second most important widget area, most often used as a secondary sidebar."
 msgstr ""
 
-#: library/functions/widgets.php:54
+#: ../library/functions/sidebars.php:85
 msgid "A widget area loaded in the footer of the site."
 msgstr ""
 
-#: library/functions/widgets.php:57
-msgid "Utility: Before Content"
+#: ../library/functions/sidebars.php:89
+msgid "Displayed within the site's header area."
 msgstr ""
 
-#: library/functions/widgets.php:57
+#: ../library/functions/sidebars.php:93
 msgid "Loaded before the page's main content area."
 msgstr ""
 
-#: library/functions/widgets.php:58
-msgid "Utility: After Content"
-msgstr ""
-
-#: library/functions/widgets.php:58
+#: ../library/functions/sidebars.php:97
 msgid "Loaded after the page's main content area."
 msgstr ""
 
-#: library/functions/widgets.php:59
-msgid "Utility: After Singular"
-msgstr ""
-
-#: library/functions/widgets.php:59
+#: ../library/functions/sidebars.php:101
 msgid "Loaded on singular post (page, attachment, etc.) views before the comments area."
 msgstr ""
 
-#: library/functions/widgets.php:63
-msgid "Widgets Template"
-msgstr ""
-
-#: library/functions/widgets.php:63
-msgid "Used as the content of the Widgets page template."
-msgstr ""
-
-#: library/functions/widgets.php:65
-msgid "404 Template"
-msgstr ""
-
-#: library/functions/widgets.php:65
-msgid "Replaces the default 404 error page content."
-msgstr ""
-
-#: library/legacy/deprecated.php:552
-#, php-format
-msgid "<code>%1$s</code> &mdash; This function has been removed or replaced by another function."
-msgstr ""
-
diff --git a/wp-content/themes/hybrid/languages/hybrid.pot b/wp-content/themes/hybrid/languages/hybrid.pot
index 27aa8711c..156a7245e 100644
--- a/wp-content/themes/hybrid/languages/hybrid.pot
+++ b/wp-content/themes/hybrid/languages/hybrid.pot
@@ -2,7 +2,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Hybrid Theme Framework\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-06-22 21:29-0600\n"
+"POT-Creation-Date: 2011-09-15 14:38-0600\n"
 "PO-Revision-Date: \n"
 "Last-Translator: Justin Tadlock <justin@justintadlock.com>\n"
 "Language-Team:  <justin@justintadlock.com>\n"
@@ -14,1121 +14,1060 @@ msgstr ""
 "X-Poedit-KeywordsList: _e;__;esc_attr_e;esc_attr__;esc_html_e;esc_html__\n"
 "X-Poedit-Basepath: .\n"
 "X-Poedit-SearchPath-0: .\n"
+"X-Poedit-SearchPath-1: ..\n"
 
-#: 404.php:35
+#: ../404.php:33
 msgid "Not Found"
 msgstr ""
 
-#: 404.php:40
+#: ../404.php:38
 #, php-format
 msgid "You tried going to %1$s, and it doesn't exist. All is not lost! You can search for what you're looking for."
 msgstr ""
 
-#: archive.php:21
-msgid "Archives"
-msgstr ""
-
-#: archive.php:25
-msgid "You are browsing the site archives."
-msgstr ""
-
-#: archive.php:52
-#: attachment-application.php:52
-#: attachment-audio.php:54
-#: attachment-image.php:57
-#: attachment-text.php:52
-#: attachment-video.php:52
-#: attachment.php:54
-#: date.php:51
-#: day.php:50
-#: home.php:37
-msgid "Apologies, but no results were found."
-msgstr ""
-
-#: attachment-application.php:29
-#: attachment-audio.php:30
-#: attachment-image.php:33
-#: attachment-text.php:29
-#: attachment-video.php:29
-#: attachment.php:31
-#: home.php:24
+#: ../attachment.php:40
 #, php-format
-msgid "Continue reading %1$s"
+msgid "Download &quot;%1$s&quot;"
 msgstr ""
 
-#: attachment-application.php:32
-#: attachment-audio.php:34
-#: attachment-text.php:32
-#: attachment-video.php:32
-#: attachment.php:34
+#: ../attachment.php:45
+#: ../index.php:26
 #, php-format
-msgid "Download &quot;%1$s&quot;"
+msgid "Continue reading %1$s"
 msgstr ""
 
-#: attachment-application.php:35
-#: attachment-audio.php:37
-#: attachment-image.php:35
-#: attachment-text.php:35
-#: attachment-video.php:35
-#: attachment.php:37
-#: home.php:25
+#: ../attachment.php:47
+#: ../index.php:27
+#: ../page-archives.php:51
+#: ../page-authors.php:56
+#: ../page-biography.php:65
 msgid "Pages:"
 msgstr ""
 
-#: comment.php:22
+#: ../comment.php:22
 msgid "Your comment is awaiting moderation."
 msgstr ""
 
-#: comments.php:12
+#: ../comments.php:14
 msgid "Please do not load this page directly. Thanks!"
 msgstr ""
 
-#: comments.php:19
-msgid "Password Protected"
-msgstr ""
-
-#: comments.php:22
-msgid "Enter the password to view comments."
-msgstr ""
-
-#: comments.php:33
+#: ../comments.php:27
 #, php-format
 msgid "No responses to %1$s"
 msgstr ""
 
-#: comments.php:33
+#: ../comments.php:27
 #, php-format
 msgid "One response to %1$s"
 msgstr ""
 
-#: comments.php:33
+#: ../comments.php:27
 #, php-format
 msgid "%1$s responses to %2$s"
 msgstr ""
 
-#: comments.php:56
+#: ../comments.php:50
 #, php-format
 msgid "Comments are closed, but <a href=\"%1$s\" title=\"Trackback URL for this post\">trackbacks</a> and pingbacks are open."
 msgstr ""
 
-#: comments.php:62
-msgid "Comments are closed."
+#: ../functions.php:137
+msgid "Widgets Template"
 msgstr ""
 
-#: date.php:20
-#: date.php:24
-#: day.php:19
-#: day.php:23
-msgid "F jS, Y"
+#: ../functions.php:138
+msgid "Used as the content of the Widgets page template."
 msgstr ""
 
-#: date.php:24
-#: day.php:23
-#, php-format
-msgid "You are browsing the archive for %1$s."
+#: ../functions.php:150
+msgid "404 Template"
 msgstr ""
 
-#: hour.php:18
-#: hour.php:22
-msgid "g a"
+#: ../functions.php:151
+msgid "Replaces the default 404 error page content."
 msgstr ""
 
-#: minute.php:18
-#: minute.php:23
-msgid "g:i a"
+#: ../functions.php:227
+msgid "By [entry-author] on [entry-published] [entry-edit-link before=\" | \"]"
 msgstr ""
 
-#: minute.php:18
-#, php-format
-msgid "Minute %1$s"
+#: ../functions.php:242
+msgid "[entry-terms taxonomy=\"category\" before=\"Posted in \"] [entry-terms taxonomy=\"post_tag\" before=\"| Tagged \"] [entry-comments-link before=\"| \"]"
 msgstr ""
 
-#: minute.php:18
-#: minute.php:25
-msgid "i"
+#: ../loop-error.php:16
+msgid "Apologies, but no results were found."
 msgstr ""
 
-#: minute.php:25
+#: ../loop-meta.php:83
 #, php-format
-msgid "You are browsing the archive for minute %1$s."
+msgid "You are browsing the search results for &quot;%1$s&quot;"
+msgstr ""
+
+#: ../loop-meta.php:92
+msgid "Archives by date"
+msgstr ""
+
+#: ../loop-meta.php:96
+msgid "You are browsing the site archives by date."
+msgstr ""
+
+#: ../loop-meta.php:120
+msgid "Archives"
 msgstr ""
 
-#: navigation-links.php:17
+#: ../loop-meta.php:124
+msgid "You are browsing the site archives."
+msgstr ""
+
+#: ../loop-nav.php:17
 msgid "&laquo; Return to entry"
 msgstr ""
 
-#: navigation-links.php:23
-#: navigation-links.php:29
+#: ../loop-nav.php:23
+#: ../loop-nav.php:31
 msgid "&laquo; Previous"
 msgstr ""
 
-#: navigation-links.php:24
-#: navigation-links.php:29
+#: ../loop-nav.php:24
+#: ../loop-nav.php:31
 msgid "Next &raquo;"
 msgstr ""
 
-#: page-archives.php:43
+#: ../page-archives.php:37
 msgid "Archives by category"
 msgstr ""
 
-#: page-archives.php:46
-#: page-categories.php:30
+#: ../page-archives.php:40
 msgid "RSS"
 msgstr ""
 
-#: page-archives.php:49
+#: ../page-archives.php:43
 msgid "Archives by month"
 msgstr ""
 
-#: page-biography.php:42
+#: ../page-biography.php:41
 msgid "Nickname:"
 msgstr ""
 
-#: page-biography.php:46
+#: ../page-biography.php:45
 msgid "Website:"
 msgstr ""
 
-#: page-biography.php:50
+#: ../page-biography.php:49
 msgid "AIM:"
 msgstr ""
 
-#: page-biography.php:50
-#: page-biography.php:54
-#: page-biography.php:58
+#: ../page-biography.php:49
+#: ../page-biography.php:53
+#: ../page-biography.php:57
 #, php-format
 msgid "IM with %1$s"
 msgstr ""
 
-#: page-biography.php:54
+#: ../page-biography.php:53
 msgid "Jabber:"
 msgstr ""
 
-#: page-biography.php:58
+#: ../page-biography.php:57
 msgid "Yahoo:"
 msgstr ""
 
-#: page-logged-in.php:51
+#: ../page-logged-in.php:52
 #, php-format
 msgid "You must be <a href=\"%1$s\" title=\"Log in\">logged in</a> to view the content of this page."
 msgstr ""
 
-#: page-logged-in.php:53
+#: ../page-logged-in.php:54
 #, php-format
 msgid "If you're not currently a member, please take a moment to <a href=\"%1$s\" title=\"Register\">register</a>."
 msgstr ""
 
-#: page-sitemap.php:29
+#: ../page-sitemap.php:30
 msgid "Feeds"
 msgstr ""
 
-#: page-sitemap.php:32
+#: ../page-sitemap.php:33
 msgid "RDF/RSS 1.0 feed"
 msgstr ""
 
-#: page-sitemap.php:32
+#: ../page-sitemap.php:33
 msgid "<acronym title=\"Resource Description Framework\">RDF</acronym> <acronym title=\"Really Simple Syndication\">RSS</acronym> 1.0 feed"
 msgstr ""
 
-#: page-sitemap.php:33
+#: ../page-sitemap.php:34
 msgid "RSS 0.92 feed"
 msgstr ""
 
-#: page-sitemap.php:33
+#: ../page-sitemap.php:34
 msgid "<acronym title=\"Really Simple Syndication\">RSS</acronym> 0.92 feed"
 msgstr ""
 
-#: page-sitemap.php:34
+#: ../page-sitemap.php:35
 msgid "RSS 2.0 feed"
 msgstr ""
 
-#: page-sitemap.php:34
+#: ../page-sitemap.php:35
 msgid "<acronym title=\"Really Simple Syndication\">RSS</acronym> 2.0 feed"
 msgstr ""
 
-#: page-sitemap.php:35
+#: ../page-sitemap.php:36
 msgid "Atom feed"
 msgstr ""
 
-#: page-sitemap.php:36
+#: ../page-sitemap.php:37
 msgid "Comments RSS 2.0 feed"
 msgstr ""
 
-#: page-sitemap.php:36
+#: ../page-sitemap.php:37
 msgid "Comments <acronym title=\"Really Simple Syndication\">RSS</acronym> 2.0 feed"
 msgstr ""
 
-#: page-sitemap.php:39
+#: ../page-sitemap.php:40
 msgid "Pages"
 msgstr ""
 
-#: page-sitemap.php:45
+#: ../page-sitemap.php:46
 msgid "Category Archives"
 msgstr ""
 
-#: page-sitemap.php:51
+#: ../page-sitemap.php:52
 msgid "Author Archives"
 msgstr ""
 
-#: page-sitemap.php:57
+#: ../page-sitemap.php:58
 msgid "Yearly Archives"
 msgstr ""
 
-#: page-sitemap.php:63
+#: ../page-sitemap.php:64
 msgid "Monthly Archives"
 msgstr ""
 
-#: page-sitemap.php:69
+#: ../page-sitemap.php:70
 msgid "Weekly Archives"
 msgstr ""
 
-#: page-sitemap.php:75
+#: ../page-sitemap.php:76
 msgid "Daily Archives"
 msgstr ""
 
-#: page-sitemap.php:81
+#: ../page-sitemap.php:82
 msgid "Tag Archives"
 msgstr ""
 
-#: page-sitemap.php:87
+#: ../page-sitemap.php:88
 msgid "Blog Posts"
 msgstr ""
 
-#: page-widgets.php:25
+#: ../page-widgets.php:26
 msgid "Edit"
 msgstr ""
 
-#: search.php:23
-#, php-format
-msgid "You are browsing the search results for &quot;%1$s&quot;"
-msgstr ""
-
-#: searchform.php:18
+#: ../searchform.php:18
 msgid "Search this site..."
 msgstr ""
 
-#: searchform.php:19
+#: ../searchform.php:19
 msgid "Search"
 msgstr ""
 
-#: week.php:19
+#: ../library/admin/meta-box-post-seo.php:30
 #, php-format
-msgid "Week %1$s of %2$s"
+msgid "%s SEO"
 msgstr ""
 
-#: week.php:19
-#: week.php:23
-msgid "W"
+#: ../library/admin/meta-box-post-seo.php:47
+msgid "Document Title:"
 msgstr ""
 
-#: week.php:19
-#: week.php:23
-#: year.php:18
-#: year.php:22
-msgid "Y"
+#: ../library/admin/meta-box-post-seo.php:53
+msgid "Meta Description:"
 msgstr ""
 
-#: week.php:23
-#, php-format
-msgid "You are browsing the archive for week %1$s of %2$s."
+#: ../library/admin/meta-box-post-seo.php:59
+msgid "Meta Keywords:"
 msgstr ""
 
-#: library/admin/meta-box.php:33
-#: library/admin/settings-page.php:35
+#: ../library/admin/meta-box-post-template.php:34
 #, php-format
-msgid "%1$s Settings"
-msgstr ""
-
-#: library/admin/meta-box.php:55
-#: library/classes/widget-archives.php:129
-#: library/classes/widget-authors.php:134
-#: library/classes/widget-bookmarks.php:150
-msgid "Title:"
-msgstr ""
-
-#: library/admin/meta-box.php:56
-#: library/admin/settings-page.php:209
-msgid "Description:"
-msgstr ""
-
-#: library/admin/meta-box.php:57
-msgid "Keywords:"
+msgid "%s Template"
 msgstr ""
 
-#: library/admin/meta-box.php:62
-msgid "Series:"
+#: ../library/admin/meta-box-post-template.php:66
+msgid "No templates exist for this post type."
 msgstr ""
 
-#: library/admin/meta-box.php:65
-msgid "Thumbnail:"
-msgstr ""
-
-#: library/admin/meta-box.php:75
-#: library/admin/meta-box.php:147
-msgid "Template:"
-msgstr ""
-
-#: library/admin/meta-box.php:81
-msgid "Layout:"
-msgstr ""
-
-#: library/admin/settings-page.php:35
-#: library/admin/settings-page.php:305
+#: ../library/admin/meta-box-theme-about.php:27
+#: ../library/admin/meta-box-theme-about.php:32
 #, php-format
-msgid "%1$s Theme Settings"
-msgstr ""
-
-#: library/admin/settings-page.php:67
-#: library/admin/settings-page.php:72
-msgid "Copyright &#169; [the-year] [site-link]."
+msgid "About %1$s"
 msgstr ""
 
-#: library/admin/settings-page.php:67
-msgid "Powered by [wp-link] and [theme-link]."
+#: ../library/admin/meta-box-theme-about.php:62
+msgid "Theme:"
 msgstr ""
 
-#: library/admin/settings-page.php:72
-msgid "Powered by [wp-link], [theme-link], and [child-link]."
+#: ../library/admin/meta-box-theme-about.php:70
+msgid "Version:"
 msgstr ""
 
-#: library/admin/settings-page.php:162
-#: library/admin/settings-page.php:167
-#, php-format
-msgid "About %1$s"
+#: ../library/admin/meta-box-theme-about.php:78
+msgid "Author:"
 msgstr ""
 
-#: library/admin/settings-page.php:171
-msgid "General settings"
+#: ../library/admin/meta-box-theme-about.php:86
+msgid "Description:"
 msgstr ""
 
-#: library/admin/settings-page.php:174
+#: ../library/admin/meta-box-theme-footer.php:24
 msgid "Footer settings"
 msgstr ""
 
-#: library/admin/settings-page.php:201
-msgid "Theme:"
+#: ../library/admin/meta-box-theme-footer.php:37
+msgid "You can add custom <acronym title=\"Hypertext Markup Language\">HTML</acronym> and/or shortcodes, which will be automatically inserted into your theme."
 msgstr ""
 
-#: library/admin/settings-page.php:205
-msgid "Author:"
+#: ../library/admin/meta-box-theme-footer.php:46
+#, php-format
+msgid "Shortcodes: %s"
 msgstr ""
 
-#: library/admin/settings-page.php:227
-msgid "Stylesheets:"
+#: ../library/admin/theme-settings.php:43
+#: ../library/admin/theme-settings.php:162
+#, php-format
+msgid "%1$s Theme Settings"
 msgstr ""
 
-#: library/admin/settings-page.php:230
-msgid "Select this to have the theme automatically include a print stylesheet."
+#: ../library/admin/theme-settings.php:44
+msgid "Theme Settings"
 msgstr ""
 
-#: library/admin/settings-page.php:234
-msgid "JavaScript:"
+#: ../library/admin/theme-settings.php:164
+msgid "Settings saved."
 msgstr ""
 
-#: library/admin/settings-page.php:237
-msgid "Include the drop-down menu JavaScript."
+#: ../library/admin/theme-settings.php:180
+msgid "Update Settings"
 msgstr ""
 
-#: library/admin/settings-page.php:241
-msgid "Menus:"
+#: ../library/admin/theme-settings.php:232
+msgid "Documentation"
 msgstr ""
 
-#: library/admin/settings-page.php:244
-msgid "Use the WordPress 3.0+ menu system? Child themes built prior to <em>Hybrid</em> 0.8 may need to be updated to use this."
+#: ../library/admin/theme-settings.php:236
+msgid "Support"
 msgstr ""
 
-#: library/admin/settings-page.php:248
-msgid "Feeds:"
+#: ../library/classes/widget-archives.php:38
+msgid "An advanced widget that gives you total control over the output of your archives."
 msgstr ""
 
-#: library/admin/settings-page.php:251
-msgid "If you have an alternate feed address, such as one from <a href=\"http://feedburner.com\" title=\"Feedburner\">Feedburner</a>, you can enter it here to have the theme redirect your feed links."
+#: ../library/classes/widget-archives.php:89
+msgid "Select Year"
 msgstr ""
 
-#: library/admin/settings-page.php:253
-msgid "Direct category, tag, search, and author feeds to your alternate feed address?"
+#: ../library/classes/widget-archives.php:92
+msgid "Select Month"
 msgstr ""
 
-#: library/admin/settings-page.php:257
-msgid "Search Engine Optimization"
+#: ../library/classes/widget-archives.php:95
+msgid "Select Week"
 msgstr ""
 
-#: library/admin/settings-page.php:257
-msgid "SEO:"
+#: ../library/classes/widget-archives.php:98
+msgid "Select Day"
 msgstr ""
 
-#: library/admin/settings-page.php:260
-msgid "Are you using an <acronym title=\"Search Engine Optimization\">SEO</acronym> plugin? Select this to disable the theme's meta and indexing features."
+#: ../library/classes/widget-archives.php:101
+msgid "Select Post"
 msgstr ""
 
-#: library/admin/settings-page.php:278
-msgid "Footer Insert:"
+#: ../library/classes/widget-archives.php:163
+msgid "Alphabetical"
 msgstr ""
 
-#: library/admin/settings-page.php:280
-msgid "You can add custom <acronym title=\"Hypertext Markup Language\">HTML</acronym> and/or shortcodes, which will be automatically inserted into your theme."
+#: ../library/classes/widget-archives.php:163
+msgid "Daily"
 msgstr ""
 
-#: library/admin/settings-page.php:282
-msgid "Shortcodes:"
+#: ../library/classes/widget-archives.php:163
+msgid "Monthly"
 msgstr ""
 
-#: library/admin/settings-page.php:307
-msgid "Settings saved."
+#: ../library/classes/widget-archives.php:163
+msgid "Post By Post"
 msgstr ""
 
-#: library/admin/settings-page.php:324
-msgid "Update Settings"
+#: ../library/classes/widget-archives.php:163
+msgid "Weekly"
 msgstr ""
 
-#: library/classes/widget-archives.php:30
-msgid "An advanced widget that gives you total control over the output of your archives."
+#: ../library/classes/widget-archives.php:163
+msgid "Yearly"
 msgstr ""
 
-#: library/classes/widget-archives.php:62
-msgid "Select Year"
+#: ../library/classes/widget-archives.php:166
+msgid "Custom"
 msgstr ""
 
-#: library/classes/widget-archives.php:64
-msgid "Select Month"
+#: ../library/classes/widget-archives.php:166
+msgid "HTML"
 msgstr ""
 
-#: library/classes/widget-archives.php:66
-msgid "Select Week"
+#: ../library/classes/widget-archives.php:166
+msgid "Option"
 msgstr ""
 
-#: library/classes/widget-archives.php:68
-msgid "Select Day"
+#: ../library/classes/widget-archives.php:171
+#: ../library/classes/widget-authors.php:165
+msgid "Title:"
 msgstr ""
 
-#: library/classes/widget-archives.php:70
-msgid "Select Post"
+#: ../library/classes/widget-archives.php:207
+#: ../library/classes/widget-authors.php:213
+msgid "Show post count?"
 msgstr ""
 
-#: library/classes/widget-archives.php:122
-msgid "Alphabetical"
+#: ../library/classes/widget-authors.php:47
+msgid "An advanced widget that gives you total control over the output of your author lists."
 msgstr ""
 
-#: library/classes/widget-archives.php:122
-msgid "Daily"
+#: ../library/classes/widget-authors.php:59
+#: ../library/classes/widget-authors.php:141
+msgid "Authors"
 msgstr ""
 
-#: library/classes/widget-archives.php:122
-msgid "Monthly"
+#: ../library/classes/widget-authors.php:158
+msgid "Ascending"
 msgstr ""
 
-#: library/classes/widget-archives.php:122
-msgid "Post By Post"
+#: ../library/classes/widget-authors.php:158
+msgid "Descending"
 msgstr ""
 
-#: library/classes/widget-archives.php:122
-msgid "Weekly"
+#: ../library/classes/widget-authors.php:159
+msgid "Display Name"
 msgstr ""
 
-#: library/classes/widget-archives.php:122
-msgid "Yearly"
+#: ../library/classes/widget-authors.php:159
+msgid "Email"
 msgstr ""
 
-#: library/classes/widget-archives.php:123
-msgid "Custom"
+#: ../library/classes/widget-authors.php:159
+msgid "ID"
 msgstr ""
 
-#: library/classes/widget-archives.php:123
-msgid "HTML"
+#: ../library/classes/widget-authors.php:159
+msgid "Nice Name"
 msgstr ""
 
-#: library/classes/widget-archives.php:123
-msgid "Option"
+#: ../library/classes/widget-authors.php:159
+msgid "Post Count"
 msgstr ""
 
-#: library/classes/widget-archives.php:165
-#: library/classes/widget-authors.php:162
-msgid "Show post count?"
+#: ../library/classes/widget-authors.php:159
+msgid "Registered"
 msgstr ""
 
-#: library/classes/widget-authors.php:30
-msgid "An advanced widget that gives you total control over the output of your author lists."
+#: ../library/classes/widget-authors.php:159
+msgid "URL"
 msgstr ""
 
-#: library/classes/widget-authors.php:32
-#: library/classes/widget-authors.php:122
-msgid "Authors"
+#: ../library/classes/widget-authors.php:159
+msgid "Login"
 msgstr ""
 
-#: library/classes/widget-authors.php:148
+#: ../library/classes/widget-authors.php:191
 msgid "List"
 msgstr ""
 
-#: library/classes/widget-authors.php:148
+#: ../library/classes/widget-authors.php:191
 msgid "None"
 msgstr ""
 
-#: library/classes/widget-authors.php:158
+#: ../library/classes/widget-authors.php:209
 msgid "<acronym title=\"Hypertext Markup Language\">HTML</acronym>?"
 msgstr ""
 
-#: library/classes/widget-authors.php:166
+#: ../library/classes/widget-authors.php:217
 msgid "Exclude admin?"
 msgstr ""
 
-#: library/classes/widget-authors.php:170
+#: ../library/classes/widget-authors.php:221
 msgid "Show full name?"
 msgstr ""
 
-#: library/classes/widget-authors.php:174
+#: ../library/classes/widget-authors.php:225
 msgid "Hide empty?"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:30
+#: ../library/classes/widget-bookmarks.php:47
 msgid "An advanced widget that gives you total control over the output of your bookmarks (links)."
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:32
-#: library/classes/widget-bookmarks.php:124
+#: ../library/classes/widget-bookmarks.php:59
+#: ../library/classes/widget-bookmarks.php:158
 msgid "Bookmarks"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:141
-#: library/classes/widget-bookmarks.php:143
-msgid "Ascending"
-msgstr ""
-
-#: library/classes/widget-bookmarks.php:141
-#: library/classes/widget-bookmarks.php:143
-msgid "Descending"
-msgstr ""
-
-#: library/classes/widget-bookmarks.php:142
+#: ../library/classes/widget-bookmarks.php:189
+#: ../library/classes/widget-categories.php:194
+#: ../library/classes/widget-tags.php:191
 msgid "Count"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:142
-#: library/classes/widget-bookmarks.php:144
-msgid "ID"
-msgstr ""
-
-#: library/classes/widget-bookmarks.php:142
-#: library/classes/widget-bookmarks.php:144
+#: ../library/classes/widget-bookmarks.php:189
+#: ../library/classes/widget-bookmarks.php:191
+#: ../library/classes/widget-categories.php:194
+#: ../library/classes/widget-tags.php:191
 msgid "Name"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:142
+#: ../library/classes/widget-bookmarks.php:189
+#: ../library/classes/widget-categories.php:194
+#: ../library/classes/widget-pages.php:170
 msgid "Slug"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:144
+#: ../library/classes/widget-bookmarks.php:191
 msgid "Description"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:144
+#: ../library/classes/widget-bookmarks.php:191
 msgid "Length"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:144
+#: ../library/classes/widget-bookmarks.php:191
 msgid "Notes"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:144
+#: ../library/classes/widget-bookmarks.php:191
 msgid "Owner"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:144
+#: ../library/classes/widget-bookmarks.php:191
+#: ../library/classes/widget-tags.php:190
 msgid "Random"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:144
+#: ../library/classes/widget-bookmarks.php:191
 msgid "Rating"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:144
+#: ../library/classes/widget-bookmarks.php:191
 msgid "Rel"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:144
+#: ../library/classes/widget-bookmarks.php:191
 msgid "Target"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:144
+#: ../library/classes/widget-bookmarks.php:191
 msgid "Updated"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:144
-msgid "URL"
-msgstr ""
-
-#: library/classes/widget-bookmarks.php:252
+#: ../library/classes/widget-bookmarks.php:299
 msgid "Categorize?"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:256
+#: ../library/classes/widget-bookmarks.php:303
 msgid "Show description?"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:260
+#: ../library/classes/widget-bookmarks.php:307
 msgid "Hide invisible?"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:264
+#: ../library/classes/widget-bookmarks.php:311
 msgid "Show rating?"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:268
+#: ../library/classes/widget-bookmarks.php:315
 msgid "Show updated?"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:272
+#: ../library/classes/widget-bookmarks.php:319
 msgid "Show images?"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:276
+#: ../library/classes/widget-bookmarks.php:323
 msgid "Show name?"
 msgstr ""
 
-#: library/classes/widget-bookmarks.php:280
+#: ../library/classes/widget-bookmarks.php:327
 msgid "Show private?"
 msgstr ""
 
-#: library/classes/widget-calendar.php:30
+#: ../library/classes/widget-calendar.php:47
 msgid "An advanced widget that gives you total control over the output of your calendar."
 msgstr ""
 
-#: library/classes/widget-calendar.php:32
-#: library/classes/widget-calendar.php:79
+#: ../library/classes/widget-calendar.php:59
+#: ../library/classes/widget-calendar.php:114
 msgid "Calendar"
 msgstr ""
 
-#: library/classes/widget-calendar.php:91
+#: ../library/classes/widget-calendar.php:128
 msgid "One-letter abbreviation?"
 msgstr ""
 
-#: library/classes/widget-categories.php:30
+#: ../library/classes/widget-categories.php:47
 msgid "An advanced widget that gives you total control over the output of your category links."
 msgstr ""
 
-#: library/classes/widget-categories.php:32
-#: library/classes/widget-categories.php:126
+#: ../library/classes/widget-categories.php:59
+#: ../library/classes/widget-categories.php:163
 msgid "Categories"
 msgstr ""
 
-#: library/classes/widget-categories.php:143
+#: ../library/classes/widget-categories.php:194
 msgid "Term Group"
 msgstr ""
 
-#: library/classes/widget-categories.php:144
+#: ../library/classes/widget-categories.php:195
 msgid "Atom"
 msgstr ""
 
-#: library/classes/widget-categories.php:144
+#: ../library/classes/widget-categories.php:195
 msgid "RDF"
 msgstr ""
 
-#: library/classes/widget-categories.php:144
+#: ../library/classes/widget-categories.php:195
 msgid "RSS 2.0"
 msgstr ""
 
-#: library/classes/widget-categories.php:249
-#: library/classes/widget-pages.php:230
+#: ../library/classes/widget-categories.php:300
+#: ../library/classes/widget-pages.php:281
 msgid "Hierarchical?"
 msgstr ""
 
-#: library/classes/widget-categories.php:253
+#: ../library/classes/widget-categories.php:304
 msgid "Use description?"
 msgstr ""
 
-#: library/classes/widget-categories.php:257
+#: ../library/classes/widget-categories.php:308
 msgid "Show last update?"
 msgstr ""
 
-#: library/classes/widget-categories.php:261
+#: ../library/classes/widget-categories.php:312
 msgid "Show count?"
 msgstr ""
 
-#: library/classes/widget-nav-menu.php:29
+#: ../library/classes/widget-nav-menu.php:46
 msgid "An advanced widget that gives you total control over the output of your menus."
 msgstr ""
 
-#: library/classes/widget-nav-menu.php:31
+#: ../library/classes/widget-nav-menu.php:58
 msgid "Navigation Menu"
 msgstr ""
 
-#: library/classes/widget-nav-menu.php:97
+#: ../library/classes/widget-nav-menu.php:132
 msgid "Navigation"
 msgstr ""
 
-#: library/classes/widget-pages.php:30
+#: ../library/classes/widget-pages.php:41
 msgid "An advanced widget that gives you total control over the output of your page links."
 msgstr ""
 
-#: library/classes/widget-pages.php:118
+#: ../library/classes/widget-pages.php:170
 msgid "Author"
 msgstr ""
 
-#: library/classes/widget-pages.php:118
+#: ../library/classes/widget-pages.php:170
 msgid "Date"
 msgstr ""
 
-#: library/classes/widget-pages.php:118
+#: ../library/classes/widget-pages.php:170
 msgid "Menu Order"
 msgstr ""
 
-#: library/classes/widget-pages.php:118
-#: library/classes/widget-pages.php:119
+#: ../library/classes/widget-pages.php:170
+#: ../library/classes/widget-pages.php:171
 msgid "Modified"
 msgstr ""
 
-#: library/classes/widget-pages.php:118
+#: ../library/classes/widget-pages.php:170
 msgid "Title"
 msgstr ""
 
-#: library/classes/widget-pages.php:119
+#: ../library/classes/widget-pages.php:171
 msgid "Created"
 msgstr ""
 
-#: library/classes/widget-search.php:30
+#: ../library/classes/widget-search.php:47
 msgid "An advanced widget that gives you total control over the output of your search form."
 msgstr ""
 
-#: library/classes/widget-search.php:110
+#: ../library/classes/widget-search.php:158
 msgid "Search Label:"
 msgstr ""
 
-#: library/classes/widget-search.php:114
+#: ../library/classes/widget-search.php:162
 msgid "Search Text:"
 msgstr ""
 
-#: library/classes/widget-search.php:121
+#: ../library/classes/widget-search.php:169
 msgid "Search Submit:"
 msgstr ""
 
-#: library/classes/widget-search.php:126
+#: ../library/classes/widget-search.php:174
 msgid "Use theme's <code>searchform.php</code>?"
 msgstr ""
 
-#: library/classes/widget-tags.php:30
+#: ../library/classes/widget-tags.php:47
 msgid "An advanced widget that gives you total control over the output of your tags."
 msgstr ""
 
-#: library/classes/widget-tags.php:32
-#: library/classes/widget-tags.php:130
+#: ../library/classes/widget-tags.php:59
+#: ../library/classes/widget-tags.php:161
 msgid "Tags"
 msgstr ""
 
-#: library/classes/widget-tags.php:146
+#: ../library/classes/widget-tags.php:188
 msgid "View"
 msgstr ""
 
-#: library/classes/widget-tags.php:147
+#: ../library/classes/widget-tags.php:189
 msgid "Flat"
 msgstr ""
 
-#: library/classes/widget-tags.php:263
+#: ../library/classes/widget-tags.php:305
 msgid "Pad counts?"
 msgstr ""
 
-#: library/extensions/breadcrumb-trail - Copy.php:50
-msgid "Create an Account"
+#: ../library/extensions/breadcrumb-trail.php:44
+msgid "Browse:"
 msgstr ""
 
-#: library/extensions/breadcrumb-trail - Copy.php:52
-msgid "Activate your Account"
+#: ../library/extensions/breadcrumb-trail.php:47
+msgid "Home"
 msgstr ""
 
-#: library/extensions/breadcrumb-trail - Copy.php:56
-#: Copy.php:59
-msgid "Create a Group"
+#: ../library/extensions/breadcrumb-trail.php:295
+msgid "g:i a"
 msgstr ""
 
-#: library/extensions/breadcrumb-trail - Copy.php:63
-msgid "Create a Blog"
+#: ../library/extensions/breadcrumb-trail.php:298
+#, php-format
+msgid "Minute %1$s"
 msgstr ""
 
-#: library/extensions/breadcrumb-trail.php:40
-msgid "Browse:"
+#: ../library/extensions/breadcrumb-trail.php:298
+msgid "i"
 msgstr ""
 
-#: library/extensions/breadcrumb-trail.php:43
-msgid "Home"
+#: ../library/extensions/breadcrumb-trail.php:301
+msgid "g a"
 msgstr ""
 
-#: library/extensions/breadcrumb-trail.php:197
-msgid "m"
+#: ../library/extensions/breadcrumb-trail.php:312
+#: ../library/extensions/breadcrumb-trail.php:318
+#: ../library/extensions/breadcrumb-trail.php:323
+#: ../library/extensions/breadcrumb-trail.php:328
+#: ../library/extensions/breadcrumb-trail.php:393
+msgid "Y"
 msgstr ""
 
-#: library/extensions/breadcrumb-trail.php:197
-#: library/extensions/breadcrumb-trail.php:208
+#: ../library/extensions/breadcrumb-trail.php:313
+#: ../library/extensions/breadcrumb-trail.php:324
+#: ../library/extensions/breadcrumb-trail.php:397
 msgid "F"
 msgstr ""
 
-#: library/extensions/breadcrumb-trail.php:198
-msgid "j"
+#: ../library/extensions/breadcrumb-trail.php:314
+#: ../library/extensions/breadcrumb-trail.php:401
+msgid "d"
 msgstr ""
 
-#: library/extensions/breadcrumb-trail.php:203
+#: ../library/extensions/breadcrumb-trail.php:319
 #, php-format
 msgid "Week %1$s"
 msgstr ""
 
-#: library/extensions/breadcrumb-trail.php:219
-#: library/functions/context.php:369
+#: ../library/extensions/breadcrumb-trail.php:319
+msgid "W"
+msgstr ""
+
+#: ../library/extensions/breadcrumb-trail.php:335
 #, php-format
 msgid "Search results for &quot;%1$s&quot;"
 msgstr ""
 
-#: library/extensions/breadcrumb-trail.php:223
-#: library/functions/context.php:372
+#: ../library/extensions/breadcrumb-trail.php:339
 msgid "404 Not Found"
 msgstr ""
 
-#: library/extensions/custom-field-series.php:64
+#: ../library/extensions/breadcrumb-trail.php:397
+msgid "F Y"
+msgstr ""
+
+#: ../library/extensions/breadcrumb-trail.php:401
+msgid "F j, Y"
+msgstr ""
+
+#: ../library/extensions/custom-field-series.php:83
 msgid "Articles in this series"
 msgstr ""
 
-#: library/functions/comments.php:147
-msgid "*"
+#: ../library/extensions/custom-field-series.php:125
+msgid "Series"
 msgstr ""
 
-#: library/functions/comments.php:151
-msgid "Email"
+#: ../library/extensions/post-stylesheets.php:115
+#, php-format
+msgid "%s Stylesheet"
+msgstr ""
+
+#: ../library/extensions/theme-layouts.php:201
+msgid "Default"
+msgstr ""
+
+#: ../library/extensions/theme-layouts.php:202
+msgid "One Column"
+msgstr ""
+
+#: ../library/extensions/theme-layouts.php:203
+msgid "Two Columns, Left"
 msgstr ""
 
-#: library/functions/comments.php:152
+#: ../library/extensions/theme-layouts.php:204
+msgid "Two Columns, Right"
+msgstr ""
+
+#: ../library/extensions/theme-layouts.php:205
+msgid "Three Columns, Left"
+msgstr ""
+
+#: ../library/extensions/theme-layouts.php:206
+msgid "Three Columns, Right"
+msgstr ""
+
+#: ../library/extensions/theme-layouts.php:207
+msgid "Three Columns, Center"
+msgstr ""
+
+#: ../library/extensions/theme-layouts.php:241
+#: ../library/extensions/theme-layouts.php:344
+msgid "Layout"
+msgstr ""
+
+#: ../library/extensions/theme-layouts.php:272
+msgid "Layout is a theme-specific structure for the single view of the post."
+msgstr ""
+
+#: ../library/functions/comments.php:163
+msgid "*"
+msgstr ""
+
+#: ../library/functions/comments.php:170
 msgid "Website"
 msgstr ""
 
-#: library/functions/comments.php:157
+#: ../library/functions/comments.php:176
 msgid "Comment"
 msgstr ""
 
-#: library/functions/comments.php:158
+#: ../library/functions/comments.php:177
 #, php-format
 msgid "You must be <a href=\"%1$s\" title=\"Log in\">logged in</a> to post a comment."
 msgstr ""
 
-#: library/functions/comments.php:159
+#: ../library/functions/comments.php:178
 #, php-format
 msgid "Logged in as <a href=\"%1$s\" title=\"%2$s\">%2$s</a>."
 msgstr ""
 
-#: library/functions/comments.php:159
+#: ../library/functions/comments.php:178
+#: ../library/functions/shortcodes.php:114
 msgid "Log out of this account"
 msgstr ""
 
-#: library/functions/comments.php:159
+#: ../library/functions/comments.php:178
 msgid "Log out &raquo;"
 msgstr ""
 
-#: library/functions/comments.php:164
+#: ../library/functions/comments.php:183
 msgid "Leave a Reply"
 msgstr ""
 
-#: library/functions/comments.php:165
+#: ../library/functions/comments.php:184
 #, php-format
 msgid "Leave a Reply to %s"
 msgstr ""
 
-#: library/functions/comments.php:166
+#: ../library/functions/comments.php:185
 msgid "Click here to cancel reply."
 msgstr ""
 
-#: library/functions/comments.php:167
-msgid "Submit"
+#: ../library/functions/comments.php:186
+msgid "Post Comment"
 msgstr ""
 
-#: library/functions/context.php:346
-#: library/functions/context.php:352
-#: library/functions/context.php:355
-#: library/functions/context.php:361
-#: library/functions/context.php:364
+#: ../library/functions/context.php:392
+#: ../library/functions/context.php:398
+#: ../library/functions/context.php:401
+#: ../library/functions/context.php:407
+#: ../library/functions/context.php:410
 #, php-format
 msgid "Archive for %1$s"
 msgstr ""
 
-#: library/functions/context.php:349
+#: ../library/functions/context.php:395
 #, php-format
 msgid "Archive for minute %1$s"
 msgstr ""
 
-#: library/functions/context.php:358
+#: ../library/functions/context.php:401
+msgid "F jS, Y"
+msgstr ""
+
+#: ../library/functions/context.php:404
 #, php-format
 msgid "Archive for week %1$s of %2$s"
 msgstr ""
 
-#: library/functions/context.php:376
+#: ../library/functions/context.php:429
 #, php-format
 msgid "%1$s Page %2$s"
 msgstr ""
 
-#: library/functions/hooks-filters.php:96
-msgid "F Y"
-msgstr ""
-
-#: library/functions/hooks-filters.php:100
+#: ../library/functions/core-seo.php:86
 #, php-format
 msgid "Copyright (c) %1$s"
 msgstr ""
 
-#: library/functions/hooks-filters.php:113
+#: ../library/functions/core-seo.php:103
+#: ../library/functions/shortcodes.php:193
+#: ../library/functions/shortcodes.php:315
 msgid "l, F jS, Y, g:i a"
 msgstr ""
 
-#: library/functions/hooks-filters.php:273
-msgid "<span class=\"byline-prep byline-prep-author\">By</span> [entry-author] <span class=\"byline-prep byline-prep-published\">on</span> [entry-published] [entry-edit-link before=\"| \"]"
+#: ../library/functions/deprecated.php:547
+#, php-format
+msgid "<code>%1$s</code> &mdash; This function has been removed or replaced by another function."
 msgstr ""
 
-#: library/functions/hooks-filters.php:293
-msgid "Posted in"
+#: ../library/functions/settings.php:70
+#: ../library/functions/settings.php:74
+msgid "Copyright &#169; [the-year] [site-link]."
 msgstr ""
 
-#: library/functions/hooks-filters.php:293
-msgid "Tagged"
+#: ../library/functions/settings.php:70
+msgid "Powered by [wp-link], [theme-link], and [child-link]."
 msgstr ""
 
-#: library/functions/menus.php:31
-msgid "Primary Menu"
+#: ../library/functions/settings.php:74
+msgid "Powered by [wp-link] and [theme-link]."
 msgstr ""
 
-#: library/functions/shortcodes.php:77
+#: ../library/functions/shortcodes.php:78
 msgid "Powered by WordPress, state-of-the-art semantic personal publishing platform"
 msgstr ""
 
-#: library/functions/shortcodes.php:77
+#: ../library/functions/shortcodes.php:78
 msgid "WordPress"
 msgstr ""
 
-#: library/functions/shortcodes.php:113
+#: ../library/functions/shortcodes.php:114
 msgid "Log out"
 msgstr ""
 
-#: library/functions/shortcodes.php:115
+#: ../library/functions/shortcodes.php:116
 msgid "Log into this account"
 msgstr ""
 
-#: library/functions/shortcodes.php:115
+#: ../library/functions/shortcodes.php:116
 msgid "Log in"
 msgstr ""
 
-#: library/functions/shortcodes.php:128
+#: ../library/functions/shortcodes.php:129
 #, php-format
 msgid "This page loaded in %1$s seconds with %2$s database queries."
 msgstr ""
 
-#: library/functions/shortcodes.php:179
-#: library/functions/shortcodes.php:368
+#: ../library/functions/shortcodes.php:180
+#: ../library/functions/shortcodes.php:382
 #, php-format
 msgid "Edit %1$s"
 msgstr ""
 
-#: library/functions/shortcodes.php:206
+#: ../library/functions/shortcodes.php:208
 msgid "Leave a response"
 msgstr ""
 
-#: library/functions/shortcodes.php:206
-msgid "1 Response"
+#: ../library/functions/shortcodes.php:208
+#, php-format
+msgid "%1$s Response"
 msgstr ""
 
-#: library/functions/shortcodes.php:206
+#: ../library/functions/shortcodes.php:208
 #, php-format
 msgid "%1$s Responses"
 msgstr ""
 
-#: library/functions/shortcodes.php:213
-#: library/functions/shortcodes.php:215
-#: library/functions/shortcodes.php:217
+#: ../library/functions/shortcodes.php:215
+#: ../library/functions/shortcodes.php:217
+#: ../library/functions/shortcodes.php:219
 #, php-format
 msgid "Comment on %1$s"
 msgstr ""
 
-#: library/functions/shortcodes.php:289
+#: ../library/functions/shortcodes.php:278
+msgid "(Untitled)"
+msgstr ""
+
+#: ../library/functions/shortcodes.php:295
 msgid "Shortlink"
 msgstr ""
 
-#: library/functions/shortcodes.php:309
+#: ../library/functions/shortcodes.php:315
 #, php-format
 msgid "%1$s at %2$s"
 msgstr ""
 
-#: library/functions/shortcodes.php:348
+#: ../library/functions/shortcodes.php:362
 #, php-format
 msgid "Permalink to comment %1$s"
 msgstr ""
 
-#: library/functions/shortcodes.php:348
+#: ../library/functions/shortcodes.php:362
 msgid "Permalink"
 msgstr ""
 
-#: library/functions/shortcodes.php:386
+#: ../library/functions/shortcodes.php:400
 msgid "Reply"
 msgstr ""
 
-#: library/functions/shortcodes.php:387
+#: ../library/functions/shortcodes.php:401
 msgid "Log in to reply."
 msgstr ""
 
-#: library/functions/widgets.php:52
-msgid "Primary"
-msgstr ""
-
-#: library/functions/widgets.php:52
+#: ../library/functions/sidebars.php:77
 msgid "The main (primary) widget area, most often used as a sidebar."
 msgstr ""
 
-#: library/functions/widgets.php:53
-msgid "Secondary"
-msgstr ""
-
-#: library/functions/widgets.php:53
-msgid "The second most important widget area, most often used as a secondary sidebar"
-msgstr ""
-
-#: library/functions/widgets.php:54
-msgid "Subsidiary"
+#: ../library/functions/sidebars.php:81
+msgid "The second most important widget area, most often used as a secondary sidebar."
 msgstr ""
 
-#: library/functions/widgets.php:54
+#: ../library/functions/sidebars.php:85
 msgid "A widget area loaded in the footer of the site."
 msgstr ""
 
-#: library/functions/widgets.php:57
-msgid "Utility: Before Content"
+#: ../library/functions/sidebars.php:89
+msgid "Displayed within the site's header area."
 msgstr ""
 
-#: library/functions/widgets.php:57
+#: ../library/functions/sidebars.php:93
 msgid "Loaded before the page's main content area."
 msgstr ""
 
-#: library/functions/widgets.php:58
-msgid "Utility: After Content"
-msgstr ""
-
-#: library/functions/widgets.php:58
+#: ../library/functions/sidebars.php:97
 msgid "Loaded after the page's main content area."
 msgstr ""
 
-#: library/functions/widgets.php:59
-msgid "Utility: After Singular"
-msgstr ""
-
-#: library/functions/widgets.php:59
+#: ../library/functions/sidebars.php:101
 msgid "Loaded on singular post (page, attachment, etc.) views before the comments area."
 msgstr ""
 
-#: library/functions/widgets.php:63
-msgid "Widgets Template"
-msgstr ""
-
-#: library/functions/widgets.php:63
-msgid "Used as the content of the Widgets page template."
-msgstr ""
-
-#: library/functions/widgets.php:65
-msgid "404 Template"
-msgstr ""
-
-#: library/functions/widgets.php:65
-msgid "Replaces the default 404 error page content."
-msgstr ""
-
-#: library/legacy/deprecated.php:552
-#, php-format
-msgid "<code>%1$s</code> &mdash; This function has been removed or replaced by another function."
-msgstr ""
-
diff --git a/wp-content/themes/hybrid/library/admin/admin.php b/wp-content/themes/hybrid/library/admin/admin.php
index c22c6cc8d..3b2de1804 100644
--- a/wp-content/themes/hybrid/library/admin/admin.php
+++ b/wp-content/themes/hybrid/library/admin/admin.php
@@ -1,67 +1,109 @@
 <?php
 /**
- * The theme administration functions are initialized and set up mainly from this file.  It is used to
- * launch the theme settings page and allow child themes and plugins to access theme-specific 
- * features. See meta-box.php for the post meta box functions.
+ * Theme administration functions used with other components of the framework admin.  This file is for 
+ * setting up any basic features and holding additional admin helper functions.
  *
- * @package Hybrid
+ * @package HybridCore
  * @subpackage Admin
  */
 
-/* Initialize the theme admin functionality. */
-add_action( 'init', 'hybrid_admin_init' );
+/* Add the admin init function to the 'admin_init' hook. */
+add_action( 'admin_init', 'hybrid_admin_init' );
 
 /**
- * Initializes the theme administration functions. Makes sure we have a theme settings
- * page and a meta box on the edit post/page screen.
+ * Initializes any admin-related features needed for the framework.
  *
- * @since 0.7
+ * @since 0.7.0
  */
 function hybrid_admin_init() {
-	$prefix = hybrid_get_prefix();
 
-	/* Initialize the theme settings page. */
-	add_action( 'admin_menu', 'hybrid_settings_page_init' );
+	/* Load the post meta boxes on the new post and edit post screens. */
+	add_action( 'load-post.php', 'hybrid_admin_load_post_meta_boxes' );
+	add_action( 'load-post-new.php', 'hybrid_admin_load_post_meta_boxes' );
 
-	/* Save settings page meta boxes. */
-	add_action( "{$prefix}_update_settings_page", 'hybrid_save_theme_settings' );
+	/* Registers admin stylesheets for the framework. */
+	add_action( 'admin_enqueue_scripts', 'hybrid_admin_register_styles', 1 );
 
-	/* Add a new meta box to the post editor. */
-	add_action( 'admin_menu', 'hybrid_create_post_meta_box' );
+	/* Loads admin stylesheets for the framework. */
+	add_action( 'admin_enqueue_scripts', 'hybrid_admin_enqueue_styles' );
+}
+
+/**
+ * Loads the core post meta box files on the 'load-post.php' action hook.  Each meta box file is only loaded if 
+ * the theme declares support for the feature.
+ *
+ * @since 1.2.0
+ */
+function hybrid_admin_load_post_meta_boxes() {
 
-	/* Saves the post meta box data. */
-	add_action( 'save_post', 'hybrid_save_post_meta_box' );
+	/* Load the SEO post meta box. */
+	require_if_theme_supports( 'hybrid-core-seo', trailingslashit( HYBRID_ADMIN ) . 'meta-box-post-seo.php' );
 
-	/* Load the admin stylesheet for the widgets screen. */
-	add_action( 'load-widgets.php', 'hybrid_settings_page_enqueue_style' );
+	/* Load the post template meta box. */
+	require_if_theme_supports( 'hybrid-core-template-hierarchy', trailingslashit( HYBRID_ADMIN ) . 'meta-box-post-template.php' );
+}
+
+/**
+ * Registers the framework's 'admin.css' stylesheet file.  The function does not load the stylesheet.  It merely
+ * registers it with WordPress.
+ *
+ * @since 1.2.0
+ */
+function hybrid_admin_register_styles() {
+	wp_register_style( 'hybrid-core-admin', trailingslashit( HYBRID_CSS ) . 'admin.css', false, '20110512', 'screen' );
 }
 
 /**
- * Function for getting an array of available custom templates with a specific header. Ideally,
- * this function would be used to grab custom singular post (any post type) templates.
+ * Loads the admin.css stylesheet for admin-related features.
  *
- * @since 0.7
+ * @since 1.2.0
+ */
+function hybrid_admin_enqueue_styles( $hook_suffix ) {
+
+	/* Load admin styles if on the widgets screen and the current theme supports 'hybrid-core-widgets'. */
+	if ( current_theme_supports( 'hybrid-core-widgets' ) && 'widgets.php' == $hook_suffix )
+		wp_enqueue_style( 'hybrid-core-admin' );
+}
+
+/**
+ * Function for getting an array of available custom templates with a specific header. Ideally, this function 
+ * would be used to grab custom singular post (any post type) templates.  It is a recreation of the WordPress
+ * page templates function because it doesn't allow for other types of templates.
+ *
+ * @since 0.7.0
  * @param array $args Arguments to check the templates against.
  * @return array $post_templates The array of templates.
  */
 function hybrid_get_post_templates( $args = array() ) {
 
+	/* Parse the arguments with the defaults. */
 	$args = wp_parse_args( $args, array( 'label' => array( 'Post Template' ) ) );
 
+	/* Get theme and templates variables. */
 	$themes = get_themes();
 	$theme = get_current_theme();
 	$templates = $themes[$theme]['Template Files'];
 	$post_templates = array();
 
+	/* If there's an array of templates, loop through each template. */
 	if ( is_array( $templates ) ) {
+
+		/* Set up a $base path that we'll use to remove from the file name. */
 		$base = array( trailingslashit( get_template_directory() ), trailingslashit( get_stylesheet_directory() ) );
 
+		/* Loop through the post templates. */
 		foreach ( $templates as $template ) {
+
+			/* Remove the base (parent/child theme path) from the template file name. */
 			$basename = str_replace( $base, '', $template );
 
+			/* Get the template data. */
 			$template_data = implode( '', file( $template ) );
 
+			/* Make sure the name is set to an empty string. */
 			$name = '';
+
+			/* Loop through each of the potential labels and see if a match is found. */
 			foreach ( $args['label'] as $label ) {
 				if ( preg_match( "|{$label}:(.*)$|mi", $template_data, $name ) ) {
 					$name = _cleanup_header_comment( $name[1] );
@@ -69,11 +111,13 @@ function hybrid_get_post_templates( $args = array() ) {
 				}
 			}
 
+			/* If a post template was found, add its name and file name to the $post_templates array. */
 			if ( !empty( $name ) )
 				$post_templates[trim( $name )] = $basename;
 		}
 	}
 
+	/* Return array of post templates. */
 	return $post_templates;
 }
 
diff --git a/wp-content/themes/hybrid/library/admin/meta-box-post-seo.php b/wp-content/themes/hybrid/library/admin/meta-box-post-seo.php
new file mode 100644
index 000000000..31b4d26d0
--- /dev/null
+++ b/wp-content/themes/hybrid/library/admin/meta-box-post-seo.php
@@ -0,0 +1,114 @@
+<?php
+/**
+ * Adds the SEO meta box to the post editing screen for public post types.  This feature allows the post author 
+ * to set a custom title, description, and keywords for the post, which will be viewed on the singular post page.  
+ * To use this feature, the theme must support the 'hybrid-core-seo' feature.  The functions in this file create
+ * the SEO meta box and save the settings chosen by the user when the post is saved.
+ *
+ * @package HybridCore
+ * @subpackage Admin
+ */
+
+/* Add the post SEO meta box on the 'add_meta_boxes' hook. */
+add_action( 'add_meta_boxes', 'hybrid_meta_box_post_add_seo' );
+
+/* Save the post SEO meta box data on the 'save_post' hook. */
+add_action( 'save_post', 'hybrid_meta_box_post_save_seo', 10, 2 );
+
+/**
+ * Adds the post SEO meta box for all public post types.
+ *
+ * @since 1.2.0
+ */
+function hybrid_meta_box_post_add_seo() {
+
+	/* Get all available public post types. */
+	$post_types = get_post_types( array( 'public' => true ), 'objects' );
+
+	/* Loop through each post type, adding the meta box for each type's post editor screen. */
+	foreach ( $post_types as $type )
+		add_meta_box( 'hybrid-core-post-seo', sprintf( __( '%s SEO', hybrid_get_textdomain() ), $type->labels->singular_name ), 'hybrid_meta_box_post_display_seo', $type->name, 'normal', 'high' );
+}
+
+/**
+ * Displays the post SEO meta box.
+ *
+ * @since 1.2.0
+ */
+function hybrid_meta_box_post_display_seo( $object, $box ) {
+
+	$domain = hybrid_get_textdomain(); ?>
+
+	<input type="hidden" name="hybrid-core-post-meta-box-seo" value="<?php echo wp_create_nonce( basename( __FILE__ ) ); ?>" />
+
+	<div class="hybrid-post-settings">
+
+	<p>
+		<label for="hybrid-document-title"><?php _e( 'Document Title:', $domain ); ?></label>
+		<br />
+		<input type="text" name="hybrid-document-title" id="hybrid-document-title" value="<?php echo esc_attr( get_post_meta( $object->ID, 'Title', true ) ); ?>" size="30" tabindex="30" style="width: 99%;" />
+	</p>
+
+	<p>
+		<label for="hybrid-meta-description"><?php _e( 'Meta Description:', $domain ); ?></label>
+		<br />
+		<textarea name="hybrid-meta-description" id="hybrid-meta-description" cols="60" rows="2" tabindex="30" style="width: 99%;"><?php echo esc_textarea( get_post_meta( $object->ID, 'Description', true ) ); ?></textarea>
+	</p>
+
+	<p>
+		<label for="hybrid-meta-keywords"><?php _e( 'Meta Keywords:', $domain ); ?></label>
+		<br />
+		<input type="text" name="hybrid-meta-keywords" id="hybrid-meta-keywords" value="<?php echo esc_attr( get_post_meta( $object->ID, 'Keywords', true ) ); ?>" size="30" tabindex="30" style="width: 99%;" />
+	</p>
+
+	</div><!-- .form-table --><?php
+}
+
+/**
+ * Saves the post SEO meta box settings as post metadata.
+ *
+ * @since 1.2.0
+ * @param int $post_id The ID of the current post being saved.
+ * @param int $post The post object currently being saved.
+ */
+function hybrid_meta_box_post_save_seo( $post_id, $post ) {
+
+	$prefix = hybrid_get_prefix();
+
+	/* Verify the nonce before proceeding. */
+	if ( !isset( $_POST['hybrid-core-post-meta-box-seo'] ) || !wp_verify_nonce( $_POST['hybrid-core-post-meta-box-seo'], basename( __FILE__ ) ) )
+		return $post_id;
+
+	/* Get the post type object. */
+	$post_type = get_post_type_object( $post->post_type );
+
+	/* Check if the current user has permission to edit the post. */
+	if ( !current_user_can( $post_type->cap->edit_post, $post_id ) )
+		return $post_id;
+
+	$meta = array(
+		'Title' => strip_tags( $_POST['hybrid-document-title'] ),
+		'Description' => strip_tags( $_POST['hybrid-meta-description'] ),
+		'Keywords' => strip_tags( $_POST['hybrid-meta-keywords'] )
+	);
+
+	foreach ( $meta as $meta_key => $new_meta_value ) {
+
+		/* Get the meta value of the custom field key. */
+		$meta_value = get_post_meta( $post_id, $meta_key, true );
+
+		/* If a new meta value was added and there was no previous value, add it. */
+		if ( $new_meta_value && '' == $meta_value )
+			add_post_meta( $post_id, $meta_key, $new_meta_value, true );
+
+		/* If the new meta value does not match the old value, update it. */
+		elseif ( $new_meta_value && $new_meta_value != $meta_value )
+			update_post_meta( $post_id, $meta_key, $new_meta_value );
+
+		/* If there is no new meta value but an old value exists, delete it. */
+		elseif ( '' == $new_meta_value && $meta_value )
+			delete_post_meta( $post_id, $meta_key, $meta_value );
+	}
+}
+
+?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/admin/meta-box-post-template.php b/wp-content/themes/hybrid/library/admin/meta-box-post-template.php
new file mode 100644
index 000000000..bcdfdb64f
--- /dev/null
+++ b/wp-content/themes/hybrid/library/admin/meta-box-post-template.php
@@ -0,0 +1,117 @@
+<?php
+/**
+ * Adds the template meta box to the post editing screen for public post types.  This feature allows users and 
+ * devs to create custom templates for any post type, not just pages as default in WordPress core.  The 
+ * functions in this file create the template meta box and save the template chosen by the user when the 
+ * post is saved.  This file is only used if the theme supports the 'hybrid-core-template-hierarchy' feature.
+ *
+ * @package HybridCore
+ * @subpackage Admin
+ */
+
+/* Add the post template meta box on the 'add_meta_boxes' hook. */
+add_action( 'add_meta_boxes', 'hybrid_meta_box_post_add_template' );
+
+/* Save the post template meta box data on the 'save_post' hook. */
+add_action( 'save_post', 'hybrid_meta_box_post_save_template', 10, 2 );
+
+/**
+ * Adds the post template meta box for all public post types, excluding the 'page' post type since WordPress 
+ * core already handles page templates.
+ *
+ * @since 1.2.0
+ */
+function hybrid_meta_box_post_add_template() {
+
+	/* Get all available public post types. */
+	$post_types = get_post_types( array( 'public' => true ), 'objects' );
+
+	/* Loop through each post type, adding the meta box for each type's post editor screen. */
+	foreach ( $post_types as $type ) {
+
+		/* Skip the 'page' post type because WordPress handles this by default. */
+		if ( 'page' !== $type->name )
+			add_meta_box( 'hybrid-core-post-template', sprintf( __( '%s Template', hybrid_get_textdomain() ), $type->labels->singular_name ), 'hybrid_meta_box_post_display_template', $type->name, 'side', 'default' );
+	}
+}
+
+/**
+ * Displays the post template meta box.
+ *
+ * @since 1.2.0
+ */
+function hybrid_meta_box_post_display_template( $object, $box ) {
+
+	/* Get the post type object. */
+	$post_type_object = get_post_type_object( $object->post_type );
+
+	/* If the post type object returns a singular name or name. */
+	if ( !empty( $post_type_object->labels->singular_name ) || !empty( $post_type_object->name ) ) {
+
+		/* Get a list of available custom templates for the post type. */
+		$templates = hybrid_get_post_templates( array( 'label' => array( "{$post_type_object->labels->singular_name} Template", "{$post_type_object->name} Template" ) ) );
+	} ?>
+
+	<input type="hidden" name="hybrid-core-post-meta-box-template" value="<?php echo wp_create_nonce( basename( __FILE__ ) ); ?>" />
+
+	<p>
+		<?php if ( 0 != count( $templates ) ) { ?>
+			<select name="hybrid-post-template" id="hybrid-post-template" class="widefat">
+				<option value=""></option>
+				<?php foreach ( $templates as $label => $template ) { ?>
+					<option value="<?php echo esc_attr( $template ); ?>" <?php selected( esc_attr( get_post_meta( $object->ID, "_wp_{$post_type_object->name}_template", true ) ), esc_attr( $template ) ); ?>><?php echo esc_html( $label ); ?></option>
+				<?php } ?>
+			</select>
+		<?php } else { ?>
+			<?php _e( 'No templates exist for this post type.', hybrid_get_textdomain() ); ?>
+		<?php } ?>
+	</p>
+<?php
+}
+
+/**
+ * Saves the post template meta box settings as post metadata.
+ *
+ * @since 1.2.0
+ * @param int $post_id The ID of the current post being saved.
+ * @param int $post The post object currently being saved.
+ */
+function hybrid_meta_box_post_save_template( $post_id, $post ) {
+
+	/* Verify the nonce before proceeding. */
+	if ( !isset( $_POST['hybrid-core-post-meta-box-template'] ) || !wp_verify_nonce( $_POST['hybrid-core-post-meta-box-template'], basename( __FILE__ ) ) )
+		return $post_id;
+
+	/* Get the post type object. */
+	$post_type = get_post_type_object( $post->post_type );
+
+	/* Check if the current user has permission to edit the post. */
+	if ( !current_user_can( $post_type->cap->edit_post, $post_id ) )
+		return $post_id;
+
+	/* Get the posted meta value. */
+	if ( !isset( $_POST['hybrid-post-template'] ) )
+		return $post_id;
+
+	$new_meta_value = strip_tags( $_POST['hybrid-post-template'] );
+
+	/* Set the $meta_key variable based off the post type name. */
+	$meta_key = "_wp_{$post->post_type}_template";
+
+	/* Get the meta value of the meta key. */
+	$meta_value = get_post_meta( $post_id, $meta_key, true );
+
+	/* If a new meta value was added and there was no previous value, add it. */
+	if ( $new_meta_value && '' == $meta_value )
+		add_post_meta( $post_id, $meta_key, $new_meta_value, true );
+
+	/* If the new meta value does not match the old value, update it. */
+	elseif ( $new_meta_value && $new_meta_value != $meta_value )
+		update_post_meta( $post_id, $meta_key, $new_meta_value );
+
+	/* If there is no new meta value but an old value exists, delete it. */
+	elseif ( '' == $new_meta_value && $meta_value )
+		delete_post_meta( $post_id, $meta_key, $meta_value );
+}
+
+?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/admin/meta-box-theme-about.php b/wp-content/themes/hybrid/library/admin/meta-box-theme-about.php
new file mode 100644
index 000000000..90cd0a057
--- /dev/null
+++ b/wp-content/themes/hybrid/library/admin/meta-box-theme-about.php
@@ -0,0 +1,95 @@
+<?php
+/**
+ * Creates a meta box for the theme settings page, which displays information about the theme.  If a child theme 
+ * is in use, an additional meta box will be added with its information.  To use this feature, the theme must 
+ * support the 'about' argument for 'hybrid-core-theme-settings' feature.
+ *
+ * @package HybridCore
+ * @subpackage Admin
+ */
+
+/* Create the about theme meta box on the 'add_meta_boxes' hook. */
+add_action( 'add_meta_boxes', 'hybrid_meta_box_theme_add_about' );
+
+/**
+ * Adds the core about theme meta box to the theme settings page.
+ *
+ * @since 1.2.0
+ */
+function hybrid_meta_box_theme_add_about() {
+
+	/* Get theme information. */
+	$prefix = hybrid_get_prefix();
+	$domain = hybrid_get_textdomain();
+	$theme_data = hybrid_get_theme_data();
+
+	/* Adds the About box for the parent theme. */
+	add_meta_box( 'hybrid-core-about-theme', sprintf( __( 'About %1$s', $domain ), $theme_data['Title'] ), 'hybrid_meta_box_theme_display_about', hybrid_get_settings_page_name(), 'side', 'high' );
+
+	/* If the user is using a child theme, add an About box for it. */
+	if ( is_child_theme() ) {
+		$child_data = hybrid_get_theme_data( 'stylesheet' );
+		add_meta_box( 'hybrid-core-about-child', sprintf( __( 'About %1$s', $domain ), $child_data['Title'] ), 'hybrid_meta_box_theme_display_about', hybrid_get_settings_page_name(), 'side', 'high' );
+	}
+}
+
+/**
+ * Creates an information meta box with no settings about the theme. The meta box will display
+ * information about both the parent theme and child theme. If a child theme is active, this function
+ * will be called a second time.
+ *
+ * @since 1.2.0
+ * @param $object Variable passed through the do_meta_boxes() call.
+ * @param array $box Specific information about the meta box being loaded.
+ */
+function hybrid_meta_box_theme_display_about( $object, $box ) {
+
+	/* Get theme information. */
+	$prefix = hybrid_get_prefix();
+	$domain = hybrid_get_textdomain();
+
+	/* Grab theme information for the parent theme. */
+	if ( 'hybrid-core-about-theme' == $box['id'] )
+		$theme_data = hybrid_get_theme_data();
+
+	/* Grab theme information for the child theme. */
+	elseif ( 'hybrid-core-about-child' == $box['id'] )
+		$theme_data = hybrid_get_theme_data( 'stylesheet' ); ?>
+
+	<table class="form-table">
+		<tr>
+			<th>
+				<?php _e( 'Theme:', $domain ); ?>
+			</th>
+			<td>
+				<a href="<?php echo $theme_data['URI']; ?>" title="<?php echo $theme_data['Title']; ?>"><?php echo $theme_data['Title']; ?></a>
+			</td>
+		</tr>
+		<tr>
+			<th>
+				<?php _e( 'Version:', $domain ); ?>
+			</th>
+			<td>
+				<?php echo $theme_data['Version']; ?>
+			</td>
+		</tr>
+		<tr>
+			<th>
+				<?php _e( 'Author:', $domain ); ?>
+			</th>
+			<td>
+				<?php echo $theme_data['Author']; ?>
+			</td>
+		</tr>
+		<tr>
+			<th>
+				<?php _e( 'Description:', $domain ); ?>
+			</th>
+			<td>
+				<?php echo $theme_data['Description']; ?>
+			</td>
+		</tr>
+	</table><!-- .form-table --><?php
+}
+
+?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/admin/meta-box-theme-footer.php b/wp-content/themes/hybrid/library/admin/meta-box-theme-footer.php
new file mode 100644
index 000000000..2dbb1a560
--- /dev/null
+++ b/wp-content/themes/hybrid/library/admin/meta-box-theme-footer.php
@@ -0,0 +1,68 @@
+<?php
+/**
+ * Creates a meta box for the theme settings page, which holds a textarea for custom footer text within 
+ * the theme.  To use this feature, the theme must support the 'footer' argument for the 
+ * 'hybrid-core-theme-settings' feature.
+ *
+ * @package HybridCore
+ * @subpackage Admin
+ */
+
+/* Create the footer meta box on the 'add_meta_boxes' hook. */
+add_action( 'add_meta_boxes', 'hybrid_meta_box_theme_add_footer' );
+
+/* Sanitize the footer settings before adding them to the database. */
+add_filter( 'sanitize_option_' . hybrid_get_prefix() . '_theme_settings', 'hybrid_meta_box_theme_save_footer' );
+
+/**
+ * Adds the core theme footer meta box to the theme settings page in the admin.
+ *
+ * @since 1.2.0
+ */
+function hybrid_meta_box_theme_add_footer() {
+
+	add_meta_box( 'hybrid-core-meta-box-footer', __( 'Footer settings', hybrid_get_textdomain() ), 'hybrid_meta_box_theme_display_footer', hybrid_get_settings_page_name(), 'normal', 'high' );
+}
+
+/**
+ * Creates a settings box that allows users to customize their footer. A basic textarea is given that
+ * allows HTML and shortcodes to be input.
+ *
+ * @since 1.2.0
+ */
+function hybrid_meta_box_theme_display_footer() {
+	$domain = hybrid_get_textdomain(); ?>
+
+	<p>
+		<span class="description"><?php _e( 'You can add custom <acronym title="Hypertext Markup Language">HTML</acronym> and/or shortcodes, which will be automatically inserted into your theme.', $domain ); ?></span>
+	</p>
+
+	<p>
+		<textarea id="<?php echo hybrid_settings_field_id( 'footer_insert' ); ?>" name="<?php echo hybrid_settings_field_name( 'footer_insert' ); ?>" cols="60" rows="5"><?php echo esc_textarea( hybrid_get_setting( 'footer_insert' ) ); ?></textarea>
+	</p>
+
+	<?php if ( current_theme_supports( 'hybrid-core-shortcodes' ) ) { ?>
+		<p>
+			<?php printf( __( 'Shortcodes: %s', $domain ), '<code>[the-year]</code>, <code>[site-link]</code>, <code>[wp-link]</code>, <code>[theme-link]</code>, <code>[child-link]</code>, <code>[loginout-link]</code>, <code>[query-counter]</code>' ); ?>
+		</p>
+	<?php }
+}
+
+/**
+ * Saves the footer meta box settings by filtering the "sanitize_option_{$prefix}_theme_settings" hook.
+ *
+ * @since 1.2.0
+ * @param array $settings Array of theme settings passed by the Settings API for validation.
+ * @return array $settings
+ */
+function hybrid_meta_box_theme_save_footer( $settings ) {
+
+	/* Make sure we kill evil scripts from users without the 'unfiltered_html' cap. */
+	if ( isset( $settings['footer_insert'] ) && !current_user_can( 'unfiltered_html' ) )
+		$settings['footer_insert'] = stripslashes( wp_filter_post_kses( addslashes( $settings['footer_insert'] ) ) );
+
+	/* Return the theme settings. */
+	return $settings;
+}
+
+?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/admin/theme-settings.php b/wp-content/themes/hybrid/library/admin/theme-settings.php
new file mode 100644
index 000000000..27fd87808
--- /dev/null
+++ b/wp-content/themes/hybrid/library/admin/theme-settings.php
@@ -0,0 +1,290 @@
+<?php
+/**
+ * Handles the display and functionality of the theme settings page. This provides the needed hooks and
+ * meta box calls for developers to create any number of theme settings needed. This file is only loaded if 
+ * the theme supports the 'hybrid-core-theme-settings' feature.
+ *
+ * Provides the ability for developers to add custom meta boxes to the theme settings page by using the 
+ * add_meta_box() function.  Developers should register their meta boxes on the 'add_meta_boxes' hook 
+ * and register the meta box for 'appearance_page_theme-settings'.  To validate/sanitize data from 
+ * custom settings, devs should use the 'sanitize_option_{$prefix}_theme_settings' filter hook.
+ *
+ * @package HybridCore
+ * @subpackage Admin
+ */
+
+/* Hook the settings page function to 'admin_menu'. */
+add_action( 'admin_menu', 'hybrid_settings_page_init' );
+
+/**
+ * Initializes all the theme settings page functionality. This function is used to create the theme settings 
+ * page, then use that as a launchpad for specific actions that need to be tied to the settings page.
+ *
+ * @since 0.7.0
+ * @global string $hybrid The global theme object.
+ */
+function hybrid_settings_page_init() {
+	global $hybrid;
+
+	/* Get theme information. */
+	$theme = hybrid_get_theme_data();
+	$prefix = hybrid_get_prefix();
+	$domain = hybrid_get_textdomain();
+
+	/* Register theme settings. */
+	register_setting(
+		"{$prefix}_theme_settings",		// Options group.
+		"{$prefix}_theme_settings",		// Database option.
+		'hybrid_save_theme_settings'	// Validation callback function.
+	);
+
+	/* Create the theme settings page. */
+	$hybrid->settings_page = add_theme_page(
+		sprintf( esc_html__( '%1$s Theme Settings', $domain ), $theme['Name'] ),	// Settings page name.
+		esc_html__( 'Theme Settings', $domain ),				// Menu item name.
+		hybrid_settings_page_capability(),					// Required capability.
+		'theme-settings',							// Screen name.
+		'hybrid_settings_page'						// Callback function.
+	);
+
+	/* Check if the settings page is being shown before running any functions for it. */
+	if ( !empty( $hybrid->settings_page ) ) {
+
+		/* Filter the settings page capability so that it recognizes the 'edit_theme_options' cap. */
+		add_filter( "option_page_capability_{$prefix}_theme_settings", 'hybrid_settings_page_capability' );
+
+		/* Add contextual help to the theme settings page. */
+		add_contextual_help( $hybrid->settings_page, hybrid_settings_page_contextual_help() );
+
+		/* Load the theme settings meta boxes. */
+		add_action( "load-{$hybrid->settings_page}", 'hybrid_load_settings_page_meta_boxes' );
+
+		/* Create a hook for adding meta boxes. */
+		add_action( "load-{$hybrid->settings_page}", 'hybrid_settings_page_add_meta_boxes' );
+
+		/* Load the JavaScript and stylesheets needed for the theme settings screen. */
+		add_action( 'admin_enqueue_scripts', 'hybrid_settings_page_enqueue_scripts' );
+		add_action( 'admin_enqueue_scripts', 'hybrid_settings_page_enqueue_styles' );
+		add_action( "admin_head-{$hybrid->settings_page}", 'hybrid_settings_page_load_scripts' );
+	}
+}
+
+/**
+ * Returns the required capability for viewing and saving theme settings.
+ *
+ * @since 1.2.0
+ */
+function hybrid_settings_page_capability() {
+	return apply_filters( hybrid_get_prefix() . '_settings_capability', 'edit_theme_options' );
+}
+
+/**
+ * Returns the theme settings page name/hook as a string.
+ *
+ * @since 1.2.0
+ */
+function hybrid_get_settings_page_name() {
+	global $hybrid;
+
+	return ( isset( $hybrid->settings_page ) ? $hybrid->settings_page : 'appearance_page_theme-settings' );
+}
+
+/**
+ * Provides a hook for adding meta boxes as seen on the post screen in the WordPress admin.  This addition 
+ * is needed because normal plugin/theme pages don't have this hook by default.  The other goal of this 
+ * function is to provide a way for themes to load and execute meta box code only on the theme settings 
+ * page in the admin.  This way, they're not needlessly loading extra files.
+ *
+ * @since 1.2.0
+ */
+function hybrid_settings_page_add_meta_boxes() {
+
+	do_action( 'add_meta_boxes', hybrid_get_settings_page_name(), hybrid_get_theme_data() );
+}
+
+/**
+ * Loads the meta boxes packaged with the framework on the theme settings page.  These meta boxes are 
+ * merely loaded with this function.  Meta boxes are only loaded if the feature is supported by the theme.
+ *
+ * @since 1.2.0
+ */
+function hybrid_load_settings_page_meta_boxes() {
+
+	/* Get theme-supported meta boxes for the settings page. */
+	$supports = get_theme_support( 'hybrid-core-theme-settings' );
+
+	/* If there are any supported meta boxes, load them. */
+	if ( is_array( $supports[0] ) ) {
+
+		/* Load the 'About' meta box if it is supported. */
+		if ( in_array( 'about', $supports[0] ) )
+			require_once( trailingslashit( HYBRID_ADMIN ) . 'meta-box-theme-about.php' );
+
+		/* Load the 'Footer' meta box if it is supported. */
+		if ( in_array( 'footer', $supports[0] ) )
+			require_once( trailingslashit( HYBRID_ADMIN ) . 'meta-box-theme-footer.php' );
+	}
+}
+
+/**
+ * Validation/Sanitization callback function for theme settings.  This just returns the data passed to it.  Theme
+ * developers should validate/sanitize their theme settings on the "sanitize_option_{$prefix}_theme_settings" 
+ * hook.  This function merely exists for backwards compatibility.
+ *
+ * @since 0.7.0
+ * @param array $settings An array of the theme settings passed by the Settings API for validation.
+ * @return array $settings The array of theme settings.
+ */
+function hybrid_save_theme_settings( $settings ) {
+
+	/* @deprecated 1.0.0. Developers should filter "sanitize_option_{$prefix}_theme_settings" instead. */
+	return apply_filters( hybrid_get_prefix() . '_validate_theme_settings', $settings );
+}
+
+/**
+ * Displays the theme settings page and calls do_meta_boxes() to allow additional settings
+ * meta boxes to be added to the page.
+ *
+ * @since 0.7.0
+ * @global string $hybrid The global theme object.
+ */
+function hybrid_settings_page() {
+
+	/* Get the theme information. */
+	$prefix = hybrid_get_prefix();
+	$domain = hybrid_get_textdomain();
+	$theme_data = hybrid_get_theme_data(); ?>
+
+	<div class="wrap">
+
+		<?php screen_icon(); ?>
+
+		<h2><?php printf( __( '%1$s Theme Settings', $domain ), $theme_data['Name'] ); ?></h2>
+
+		<?php if ( isset( $_GET['settings-updated'] ) && 'true' == esc_attr( $_GET['settings-updated'] ) ) echo '<div class="updated"><p><strong>' . __( 'Settings saved.', $domain ) . '</strong></p></div>'; ?>
+
+		<div id="poststuff">
+
+			<form method="post" action="options.php">
+
+				<?php settings_fields( "{$prefix}_theme_settings" ); ?>
+				<?php wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false ); ?>
+				<?php wp_nonce_field( 'meta-box-order', 'meta-box-order-nonce', false ); ?>
+
+				<div class="metabox-holder">
+					<div class="post-box-container column-1 normal"><?php do_meta_boxes( hybrid_get_settings_page_name(), 'normal', null ); ?></div>
+					<div class="post-box-container column-2 side"><?php do_meta_boxes( hybrid_get_settings_page_name(), 'side', null ); ?></div>
+					<div class="post-box-container column-3 advanced"><?php do_meta_boxes( hybrid_get_settings_page_name(), 'advanced', null ); ?></div>
+				</div>
+
+				<?php submit_button( esc_attr__( 'Update Settings', $domain ) ); ?>
+
+			</form>
+
+		</div><!-- #poststuff -->
+
+	</div><!-- .wrap --><?php
+}
+
+/**
+ * Creates a settings field id attribute for use on the theme settings page.  This is a helper function for use
+ * with the WordPress settings API.
+ *
+ * @since 1.0.0
+ */
+function hybrid_settings_field_id( $setting ) {
+	return hybrid_get_prefix() . '_theme_settings-' . sanitize_html_class( $setting );
+}
+
+/**
+ * Creates a settings field name attribute for use on the theme settings page.  This is a helper function for 
+ * use with the WordPress settings API.
+ *
+ * @since 1.0.0
+ */
+function hybrid_settings_field_name( $setting ) {
+	return hybrid_get_prefix() . "_theme_settings[{$setting}]";
+}
+
+/**
+ * Returns text for the contextual help tab on the theme settings page in the admin.  Theme authors can add 
+ * a filter to the 'contextual_help' hook if they want to change the output of the help text.
+ *
+ * @since 1.2.0
+ * @return string $help The contextual help text used on the theme settings page.
+ */
+function hybrid_settings_page_contextual_help() {
+
+	/* Set the $help variable to an empty string. */
+	$help = '';
+
+	/* Get the parent theme data. */
+	$theme = hybrid_get_theme_data();
+
+	/* If the theme has provided a documentation or support URI, add them to the help text. */
+	if ( !empty( $theme['Documentation URI'] ) || !empty( $theme['Support URI'] ) ) {
+
+		/* Open an unordered list for the help text. */
+		$help = '<ul>';
+
+		/* Add the Documentation URI. */
+		if ( !empty( $theme['Documentation URI'] ) )
+			$help .= '<li><a href="' . esc_url( $theme['Documentation URI'] ) . '">' . __( 'Documentation', hybrid_get_textdomain() ) . '</a></li>';
+
+		/* Add the Support URI. */
+		if ( !empty( $theme['Support URI'] ) )
+			$help .= '<li><a href="' . esc_url( $theme['Support URI'] ) . '">' . __( 'Support', hybrid_get_textdomain() ) . '</a></li>';
+
+		/* Close the unordered list for the help text. */
+		$help .= '</ul>';
+	}
+
+	/* Return the contextual help text for this screen. */
+	return $help;
+}
+
+/**
+ * Loads the required stylesheets for displaying the theme settings page in the WordPress admin.
+ *
+ * @since 1.2.0
+ */
+function hybrid_settings_page_enqueue_styles( $hook_suffix ) {
+
+	/* Load admin stylesheet if on the theme settings screen. */
+	if ( $hook_suffix == hybrid_get_settings_page_name() )
+		wp_enqueue_style( 'hybrid-core-admin' );
+}
+
+/**
+ * Loads the JavaScript files required for managing the meta boxes on the theme settings
+ * page, which allows users to arrange the boxes to their liking.
+ *
+ * @since 1.2.0
+ * @param string $hook_suffix The current page being viewed.
+ */
+function hybrid_settings_page_enqueue_scripts( $hook_suffix ) {
+
+	if ( $hook_suffix == hybrid_get_settings_page_name() ) {
+		wp_enqueue_script( 'common' );
+		wp_enqueue_script( 'wp-lists' );
+		wp_enqueue_script( 'postbox' );
+	}
+}
+
+/**
+ * Loads the JavaScript required for toggling the meta boxes on the theme settings page.
+ *
+ * @since 0.7.0
+ */
+function hybrid_settings_page_load_scripts() { ?>
+	<script type="text/javascript">
+		//<![CDATA[
+		jQuery(document).ready( function($) {
+			$('.if-js-closed').removeClass('if-js-closed').addClass('closed');
+			postboxes.add_postbox_toggles( '<?php echo hybrid_get_settings_page_name(); ?>' );
+		});
+		//]]>
+	</script><?php
+}
+
+?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/classes/widget-archives.php b/wp-content/themes/hybrid/library/classes/widget-archives.php
index 6545d2358..57369b531 100644
--- a/wp-content/themes/hybrid/library/classes/widget-archives.php
+++ b/wp-content/themes/hybrid/library/classes/widget-archives.php
@@ -1,92 +1,129 @@
 <?php
 /**
- * Archives Widget Class
- *
  * The Archives widget replaces the default WordPress Archives widget. This version gives total
  * control over the output to the user by allowing the input of all the arguments typically seen
  * in the wp_get_archives() function.
  *
- * @since 0.6
- * @link http://codex.wordpress.org/Template_Tags/wp_get_archives
- * @link http://themehybrid.com/themes/hybrid/widgets
- *
  * @package Hybrid
  * @subpackage Classes
  */
 
+/**
+ * Archives widget class.
+ *
+ * @since 0.6.0
+ * @link http://codex.wordpress.org/Template_Tags/wp_get_archives
+ * @link http://themehybrid.com/themes/hybrid/widgets
+ */
 class Hybrid_Widget_Archives extends WP_Widget {
 
-	var $prefix;
+	/**
+	 * Textdomain for the widget.
+	 * @since 0.7.0
+	 */
 	var $textdomain;
 
 	/**
 	 * Set up the widget's unique name, ID, class, description, and other options.
-	 * @since 0.6
+	 * @since 1.2.0
 	 */
-	function Hybrid_Widget_Archives() {
-		$this->prefix = hybrid_get_prefix();
+	function __construct() {
+
+		/* Set the widget textdomain. */
 		$this->textdomain = hybrid_get_textdomain();
 
-		$widget_ops = array( 'classname' => 'archives', 'description' => __( 'An advanced widget that gives you total control over the output of your archives.', $this->textdomain ) );
-		$control_ops = array( 'width' => 525, 'height' => 350, 'id_base' => "{$this->prefix}-archives" );
-		$this->WP_Widget( "{$this->prefix}-archives", __( 'Archives', $this->textdomain ), $widget_ops, $control_ops );
+		/* Set up the widget options. */
+		$widget_options = array(
+			'classname' => 'archives',
+			'description' => esc_html__( 'An advanced widget that gives you total control over the output of your archives.', $this->textdomain )
+		);
+
+		/* Set up the widget control options. */
+		$control_options = array(
+			'width' => 525,
+			'height' => 350
+		);
+
+		/* Create the widget. */
+		$this->WP_Widget(
+			'hybrid-archives',			// $this->id_base
+			__( 'Archives', $this->textdomain ),	// $this->name
+			$widget_options,			// $this->widget_options
+			$control_options			// $this->control_options
+		);
 	}
 
 	/**
 	 * Outputs the widget based on the arguments input through the widget controls.
-	 * @since 0.6
+	 * @since 0.6.0
 	 */
 	function widget( $args, $instance ) {
 		extract( $args );
 
-		$args = array();
-
-		$args['type'] = $instance['type']; 
-		$args['format'] = $instance['format'];
-		$args['before'] = $instance['before'];
-		$args['after'] = $instance['after'];
-		$args['show_post_count'] = isset( $instance['show_post_count'] ) ? $instance['show_post_count'] : false;
-		$args['limit'] = !empty( $instance['limit'] ) ? intval( $instance['limit'] ) : '';
-		$args['echo'] = false;
+		/* Set up the arguments for wp_get_archives(). */
+		$args = array(
+			'type' =>			$instance['type'],
+			'format' =>		$instance['format'],
+			'before' =>		$instance['before'],
+			'after' =>		$instance['after'],
+			'show_post_count' =>	!empty( $instance['show_post_count'] ) ? true : false,
+			'limit' =>			!empty( $instance['limit'] ) ? intval( $instance['limit'] ) : '',
+			'echo' =>			false
+		);
 
+		/* Output the theme's $before_widget wrapper. */
 		echo $before_widget;
 
-		if ( $instance['title'] )
-			echo $before_title . apply_filters( 'widget_title', $instance['title'] ) . $after_title;
+		/* If a title was input by the user, display it. */
+		if ( !empty( $instance['title'] ) )
+			echo $before_title . apply_filters( 'widget_title',  $instance['title'], $instance, $this->id_base ) . $after_title;
 
+		/* Get the archives list. */
 		$archives = str_replace( array( "\r", "\n", "\t" ), '', wp_get_archives( $args ) );
 
+		/* If the archives should be shown in a <select> drop-down. */
 		if ( 'option' == $args['format'] ) {
 
+			/* Create a title for the drop-down based on the archive type. */
 			if ( 'yearly' == $args['type'] )
-				$option_title = __( 'Select Year', $this->textdomain );
+				$option_title = esc_html__( 'Select Year', $this->textdomain );
+
 			elseif ( 'monthly' == $args['type'] )
-				$option_title = __( 'Select Month', $this->textdomain );
+				$option_title = esc_html__( 'Select Month', $this->textdomain );
+
 			elseif ( 'weekly' == $args['type'] )
-				$option_title = __( 'Select Week', $this->textdomain );
+				$option_title = esc_html__( 'Select Week', $this->textdomain );
+
 			elseif ( 'daily' == $args['type'] )
-				$option_title = __( 'Select Day', $this->textdomain );
+				$option_title = esc_html__( 'Select Day', $this->textdomain );
+
 			elseif ( 'postbypost' == $args['type'] || 'alpha' == $args['type'] )
-				$option_title = __( 'Select Post', $this->textdomain );
+				$option_title = esc_html__( 'Select Post', $this->textdomain );
 
-			echo '<select name="archive-dropdown" onchange=\'document.location.href=this.options[this.selectedIndex].value;\'>';
-			echo '<option value="">' . esc_attr( $option_title ) . '</option>';
-			echo $archives;
-			echo '</select>';
+			/* Output the <select> element and each <option>. */
+			echo '<p><select name="archive-dropdown" onchange=\'document.location.href=this.options[this.selectedIndex].value;\'>';
+				echo '<option value="">' . $option_title . '</option>';
+				echo $archives;
+			echo '</select></p>';
 		}
+
+		/* If the format should be an unordered list. */
 		elseif ( 'html' == $args['format'] ) {
 			echo '<ul class="xoxo archives">' . $archives . '</ul><!-- .xoxo .archives -->';
 		}
+
+		/* All other formats. */
 		else {
 			echo $archives;
 		}
 
+		/* Close the theme's widget wrapper. */
 		echo $after_widget;
 	}
 
 	/**
 	 * Updates the widget control options for the particular instance of the widget.
-	 * @since 0.6
+	 * @since 0.6.0
 	 */
 	function update( $new_instance, $old_instance ) {
 		$instance = $old_instance;
@@ -104,40 +141,45 @@ class Hybrid_Widget_Archives extends WP_Widget {
 
 	/**
 	 * Displays the widget control options in the Widgets admin screen.
-	 * @since 0.6
+	 * @since 0.6.0
 	 */
 	function form( $instance ) {
 
-		//Defaults
+		/* Set up the default form values. */
 		$defaults = array(
-			'title' => __( 'Archives', $this->textdomain ),
-			'limit' => '',
+			'title' => esc_attr__( 'Archives', $this->textdomain ),
+			'limit' => 10,
 			'type' => 'monthly',
 			'format' => 'html',
 			'before' => '',
-			'after' => ''
+			'after' => '',
+			'show_post_count' => false
 		);
+
+		/* Merge the user-selected arguments with the defaults. */
 		$instance = wp_parse_args( (array) $instance, $defaults );
 
-		$type = array( 'alpha' => __( 'Alphabetical', $this->textdomain ), 'daily' => __( 'Daily', $this->textdomain ), 'monthly' => __( 'Monthly', $this->textdomain ),'postbypost' => __( 'Post By Post', $this->textdomain ), 'weekly' => __( 'Weekly', $this->textdomain ), 'yearly' => __( 'Yearly', $this->textdomain ) );
-		$format = array( 'custom' => __( 'Custom', $this->textdomain ), 'html' => __( 'HTML', $this->textdomain ), 'option' => __( 'Option', $this->textdomain ) );
+		/* Create an array of archive types. */
+		$type = array( 'alpha' => esc_attr__( 'Alphabetical', $this->textdomain ), 'daily' => esc_attr__( 'Daily', $this->textdomain ), 'monthly' => esc_attr__( 'Monthly', $this->textdomain ),'postbypost' => esc_attr__( 'Post By Post', $this->textdomain ), 'weekly' => esc_attr__( 'Weekly', $this->textdomain ), 'yearly' => esc_attr__( 'Yearly', $this->textdomain ) );
 
+		/* Create an array of archive formats. */
+		$format = array( 'custom' => esc_attr__( 'Custom', $this->textdomain ), 'html' => esc_attr__( 'HTML', $this->textdomain ), 'option' => esc_attr__( 'Option', $this->textdomain ) );
 		?>
 
 		<div class="hybrid-widget-controls columns-2">
 		<p>
 			<label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:', $this->textdomain ); ?></label>
-			<input type="text" class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo $instance['title']; ?>" />
+			<input type="text" class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo esc_attr( $instance['title'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'limit' ); ?>"><code>limit</code></label>
-			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'limit' ); ?>" name="<?php echo $this->get_field_name( 'limit' ); ?>" value="<?php echo $instance['limit']; ?>" />
+			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'limit' ); ?>" name="<?php echo $this->get_field_name( 'limit' ); ?>" value="<?php echo esc_attr( $instance['limit'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'type' ); ?>"><code>type</code></label> 
 			<select class="widefat" id="<?php echo $this->get_field_id( 'type' ); ?>" name="<?php echo $this->get_field_name( 'type' ); ?>">
 				<?php foreach ( $type as $option_value => $option_label ) { ?>
-					<option value="<?php echo $option_value; ?>" <?php selected( $instance['type'], $option_value ); ?>><?php echo $option_label; ?></option>
+					<option value="<?php echo esc_attr( $option_value ); ?>" <?php selected( $instance['type'], $option_value ); ?>><?php echo esc_html( $option_label ); ?></option>
 				<?php } ?>
 			</select>
 		</p>
@@ -145,7 +187,7 @@ class Hybrid_Widget_Archives extends WP_Widget {
 			<label for="<?php echo $this->get_field_id( 'format' ); ?>"><code>format</code></label> 
 			<select class="widefat" id="<?php echo $this->get_field_id( 'format' ); ?>" name="<?php echo $this->get_field_name( 'format' ); ?>">
 				<?php foreach ( $format as $option_value => $option_label ) { ?>
-					<option value="<?php echo $option_value; ?>" <?php selected( $instance['format'], $option_value ); ?>><?php echo $option_label; ?></option>
+					<option value="<?php echo esc_attr( $option_value ); ?>" <?php selected( $instance['format'], $option_value ); ?>><?php echo esc_html( $option_label ); ?></option>
 				<?php } ?>
 			</select>
 		</p>
@@ -154,11 +196,11 @@ class Hybrid_Widget_Archives extends WP_Widget {
 		<div class="hybrid-widget-controls columns-2 column-last">
 		<p>
 			<label for="<?php echo $this->get_field_id( 'before' ); ?>"><code>before</code></label>
-			<input type="text" class="widefat code" id="<?php echo $this->get_field_id( 'before' ); ?>" name="<?php echo $this->get_field_name( 'before' ); ?>" value="<?php echo $instance['before']; ?>" />
+			<input type="text" class="widefat code" id="<?php echo $this->get_field_id( 'before' ); ?>" name="<?php echo $this->get_field_name( 'before' ); ?>" value="<?php echo esc_attr( $instance['before'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'after' ); ?>"><code>after</code></label>
-			<input type="text" class="widefat code" id="<?php echo $this->get_field_id( 'after' ); ?>" name="<?php echo $this->get_field_name( 'after' ); ?>" value="<?php echo $instance['after']; ?>" />
+			<input type="text" class="widefat code" id="<?php echo $this->get_field_id( 'after' ); ?>" name="<?php echo $this->get_field_name( 'after' ); ?>" value="<?php echo esc_attr( $instance['after'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'show_post_count' ); ?>">
diff --git a/wp-content/themes/hybrid/library/classes/widget-authors.php b/wp-content/themes/hybrid/library/classes/widget-authors.php
index 5abd5b660..2f938c0f4 100644
--- a/wp-content/themes/hybrid/library/classes/widget-authors.php
+++ b/wp-content/themes/hybrid/library/classes/widget-authors.php
@@ -1,91 +1,114 @@
 <?php
 /**
- * Authors Widget Class
- *
  * The authors widget was created to give users the ability to list the authors of their blog because
  * there was no equivalent WordPress widget that offered the functionality. This widget allows full
  * control over its output by giving access to the parameters of wp_list_authors().
  *
- * @since 0.6
- * @link http://codex.wordpress.org/Template_Tags/wp_list_authors
- * @link http://themehybrid.com/themes/hybrid/widgets
- *
  * @package Hybrid
  * @subpackage Classes
  */
 
+/**
+ * Authors Widget Class
+ *
+ * @since 0.6.0
+ * @link http://codex.wordpress.org/Template_Tags/wp_list_authors
+ * @link http://themehybrid.com/themes/hybrid/widgets
+ */
 class Hybrid_Widget_Authors extends WP_Widget {
 
+	/**
+	 * Prefix for the widget.
+	 * @since 0.7.0
+	 */
 	var $prefix;
+
+	/**
+	 * Textdomain for the widget.
+	 * @since 0.7.0
+	 */
 	var $textdomain;
 
 	/**
 	 * Set up the widget's unique name, ID, class, description, and other options.
-	 * @since 0.6
+	 * @since 1.2.0
 	 */
-	function Hybrid_Widget_Authors() {
+	function __construct() {
+
+		/* Set the widget prefix. */
 		$this->prefix = hybrid_get_prefix();
+
+		/* Set the widget textdomain. */
 		$this->textdomain = hybrid_get_textdomain();
 
-		$widget_ops = array( 'classname' => 'authors', 'description' => __( 'An advanced widget that gives you total control over the output of your author lists.',$this->textdomain ) );
-		$control_ops = array( 'width' => 525, 'height' => 350, 'id_base' => "{$this->prefix}-authors" );
-		$this->WP_Widget( "{$this->prefix}-authors", __( 'Authors', $this->textdomain ), $widget_ops, $control_ops );
+		/* Set up the widget options. */
+		$widget_options = array(
+			'classname' => 'authors',
+			'description' => esc_html__( 'An advanced widget that gives you total control over the output of your author lists.', $this->textdomain )
+		);
+
+		/* Set up the widget control options. */
+		$control_options = array(
+			'width' => 525,
+			'height' => 350
+		);
 
-		add_action( 'delete_user', array( &$this, 'delete_transient' ) );
-		add_action( 'user_register', array( &$this, 'delete_transient' ) );
-		add_action( 'profile_update', array( &$this, 'delete_transient' ) );
-		add_action( 'save_post', array( &$this, 'delete_transient' ) );
-		add_action( 'deleted_post', array( &$this, 'delete_transient' ) );
+		/* Create the widget. */
+		$this->WP_Widget(
+			'hybrid-authors',			// $this->id_base
+			__( 'Authors', $this->textdomain ),	// $this->name
+			$widget_options,			// $this->widget_options
+			$control_options			// $this->control_options
+		);
 	}
 
 	/**
 	 * Outputs the widget based on the arguments input through the widget controls.
-	 * @since 0.6
+	 * @since 0.6.0
 	 */
 	function widget( $args, $instance ) {
-
-		/* If a transient has been saved with the widget information, use it. */
-		$transient = get_transient( "{$this->prefix}_widget_{$args['widget_id']}" );
-		if ( $transient ) {
-			echo $transient;
-			return;
-		}
-
 		extract( $args, EXTR_SKIP );
 
-		$args = array();
-
-		$args['style'] = $instance['style'];
-		$args['feed'] = $instance['feed']; 
-		$args['feed_image'] = $instance['feed_image'];
-		$args['optioncount'] = isset( $instance['optioncount'] ) ? $instance['optioncount'] : false;
-		$args['exclude_admin'] = isset( $instance['exclude_admin'] ) ? $instance['exclude_admin'] : false;
-		$args['show_fullname'] = isset( $instance['show_fullname'] ) ? $instance['show_fullname'] : false;
-		$args['hide_empty'] = isset( $instance['hide_empty'] ) ? $instance['hide_empty'] : false;
-		$args['html'] = isset( $instance['html'] ) ? $instance['html'] : false;
-		$args['echo'] = false;
+		/* Set up the arguments for wp_list_authors(). */
+		$args = array(
+			'order' =>		$instance['order'],
+			'orderby' =>		$instance['orderby'],
+			'number' =>		!empty( $instance['number'] ) ? intval( $instance['number'] ) : '',
+			'style' => 		$instance['style'],
+			'feed' => 		$instance['feed'],
+			'feed_image' => 		$instance['feed_image'],
+			'optioncount' => 		!empty( $instance['optioncount'] ) ? true : false,
+			'exclude_admin' => 	!empty( $instance['exclude_admin'] ) ? true : false,
+			'show_fullname' => 	!empty( $instance['show_fullname'] ) ? true : false,
+			'hide_empty' => 		!empty( $instance['hide_empty'] ) ? true : false,
+			'html' => 			!empty( $instance['html'] ) ? true : false,
+			'echo' => 		false
+		);
 
-		$authors_widget = $before_widget;
+		/* Output the theme's $before_widget wrapper. */
+		echo $before_widget;
 
-		if ( $instance['title'] )
-			$authors_widget .= $before_title . apply_filters( 'widget_title',  $instance['title'], $instance, $this->id_base ) . $after_title;
+		/* If a title was input by the user, display it. */
+		if ( !empty( $instance['title'] ) )
+			echo $before_title . apply_filters( 'widget_title',  $instance['title'], $instance, $this->id_base ) . $after_title;
 
+		/* Get the authors list. */
 		$authors = str_replace( array( "\r", "\n", "\t" ), '', wp_list_authors( $args ) );
 
+		/* If 'list' is the style and the output should be HTML, wrap the authors in a <ul>. */
 		if ( 'list' == $args['style'] && $args['html'] )
 			$authors = '<ul class="xoxo authors">' . $authors . '</ul><!-- .xoxo .authors -->';
 
-		$authors_widget .= $authors;
-
-		$authors_widget .= $after_widget;
+		/* Display the authors list. */
+		echo $authors;
 
-		set_transient( "{$this->prefix}_widget_{$widget_id}", $authors_widget, hybrid_get_transient_expiration() ); 
-		echo $authors_widget;
+		/* Close the theme's widget wrapper. */
+		echo $after_widget;
 	}
 
 	/**
 	 * Updates the widget control options for the particular instance of the widget.
-	 * @since 0.6
+	 * @since 0.6.0
 	 */
 	function update( $new_instance, $old_instance ) {
 		$instance = $old_instance;
@@ -94,7 +117,9 @@ class Hybrid_Widget_Authors extends WP_Widget {
 
 		$instance['title'] = strip_tags( $new_instance['title'] );
 		$instance['feed'] = strip_tags( $new_instance['feed'] );
-		$instance['feed_image'] = strip_tags( $new_instance['feed_image'] );
+		$instance['order'] = strip_tags( $new_instance['order'] );
+		$instance['orderby'] = strip_tags( $new_instance['orderby'] );
+		$instance['number'] = strip_tags( $new_instance['number'] );
 
 		$instance['html'] = ( isset( $new_instance['html'] ) ? 1 : 0 );
 		$instance['optioncount'] = ( isset( $new_instance['optioncount'] ) ? 1 : 0 );
@@ -102,57 +127,83 @@ class Hybrid_Widget_Authors extends WP_Widget {
 		$instance['show_fullname'] = ( isset( $new_instance['show_fullname'] ) ? 1 : 0 );
 		$instance['hide_empty'] = ( isset( $new_instance['hide_empty'] ) ? 1 : 0 );
 
-		$this->delete_transient();
-
 		return $instance;
 	}
 
-	function delete_transient() {
-		delete_transient( "{$this->prefix}_widget_{$this->id}" );
-	}
-
 	/**
 	 * Displays the widget control options in the Widgets admin screen.
-	 * @since 0.6
+	 * @since 0.6.0
 	 */
 	function form( $instance ) {
 
-		//Defaults
+		/* Set up the default form values. */
 		$defaults = array(
-			'title' => __( 'Authors', $this->textdomain ),
+			'title' => esc_attr__( 'Authors', $this->textdomain ),
+			'order' => 'ASC',
+			'orderby' => 'display_name',
+			'number' => '',
 			'optioncount' => false,
 			'exclude_admin' => false,
 			'show_fullname' => true,
 			'hide_empty' => true,
 			'style' => 'list',
-			'html' => true
+			'html' => true,
+			'feed' => '',
+			'feed_image' => ''
 		);
-		$instance = wp_parse_args( (array) $instance, $defaults ); ?>
+
+		/* Merge the user-selected arguments with the defaults. */
+		$instance = wp_parse_args( (array) $instance, $defaults );
+
+		$order = array( 'ASC' => esc_attr__( 'Ascending', $this->textdomain ), 'DESC' => esc_attr__( 'Descending', $this->textdomain ) );
+		$orderby = array( 'display_name' => esc_attr__( 'Display Name', $this->textdomain ), 'email' => esc_attr__( 'Email', $this->textdomain ), 'ID' => esc_attr__( 'ID', $this->textdomain ), 'nicename' => esc_attr__( 'Nice Name', $this->textdomain ), 'post_count' => esc_attr__( 'Post Count', $this->textdomain ), 'registered' => esc_attr__( 'Registered', $this->textdomain ), 'url' => esc_attr__( 'URL', $this->textdomain ), 'user_login' => esc_attr__( 'Login', $this->textdomain ) );
+
+		?>
 
 		<div class="hybrid-widget-controls columns-2">
 		<p>
 			<label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:', $this->textdomain ); ?></label>
-			<input type="text" class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo $instance['title']; ?>" />
+			<input type="text" class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo esc_attr( $instance['title'] ); ?>" />
 		</p>
 		<p>
-			<label for="<?php echo $this->get_field_id( 'feed' ); ?>"><code>feed</code></label>
-			<input type="text" class="widefat code" id="<?php echo $this->get_field_id( 'feed' ); ?>" name="<?php echo $this->get_field_name( 'feed' ); ?>" value="<?php echo $instance['feed']; ?>" />
+			<label for="<?php echo $this->get_field_id( 'order' ); ?>"><code>order</code></label> 
+			<select class="widefat" id="<?php echo $this->get_field_id( 'order' ); ?>" name="<?php echo $this->get_field_name( 'order' ); ?>">
+				<?php foreach ( $order as $option_value => $option_label ) { ?>
+					<option value="<?php echo esc_attr( $option_value ); ?>" <?php selected( $instance['order'], $option_value ); ?>><?php echo esc_html( $option_label ); ?></option>
+				<?php } ?>
+			</select>
 		</p>
 		<p>
-			<label for="<?php echo $this->get_field_id( 'feed_image' ); ?>"><code>feed_image</code></label>
-			<input type="text" class="widefat code" id="<?php echo $this->get_field_id( 'feed_image' ); ?>" name="<?php echo $this->get_field_name( 'feed_image' ); ?>" value="<?php echo $instance['feed_image']; ?>" />
+			<label for="<?php echo $this->get_field_id( 'orderby' ); ?>"><code>orderby</code></label> 
+			<select class="widefat" id="<?php echo $this->get_field_id( 'orderby' ); ?>" name="<?php echo $this->get_field_name( 'orderby' ); ?>">
+				<?php foreach ( $orderby as $option_value => $option_label ) { ?>
+					<option value="<?php echo esc_attr( $option_value ); ?>" <?php selected( $instance['orderby'], $option_value ); ?>><?php echo esc_html( $option_label ); ?></option>
+				<?php } ?>
+			</select>
+		</p>
+		<p>
+			<label for="<?php echo $this->get_field_id( 'number' ); ?>"><code>number</code></label>
+			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'number' ); ?>" name="<?php echo $this->get_field_name( 'number' ); ?>" value="<?php echo esc_attr( $instance['number'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'style' ); ?>"><code>style</code></label> 
 			<select class="widefat" id="<?php echo $this->get_field_id( 'style' ); ?>" name="<?php echo $this->get_field_name( 'style' ); ?>">
-				<?php foreach ( array( 'list' => __( 'List', $this->textdomain), 'none' => __( 'None', $this->textdomain ) ) as $option_value => $option_label ) { ?>
-					<option value="<?php echo $option_value; ?>" <?php selected( $instance['style'], $option_value ); ?>><?php echo $option_label; ?></option>
+				<?php foreach ( array( 'list' => esc_attr__( 'List', $this->textdomain), 'none' => esc_attr__( 'None', $this->textdomain ) ) as $option_value => $option_label ) { ?>
+					<option value="<?php echo esc_attr( $option_value ); ?>" <?php selected( $instance['style'], $option_value ); ?>><?php echo esc_html( $option_label ); ?></option>
 				<?php } ?>
 			</select>
 		</p>
 		</div>
 
 		<div class="hybrid-widget-controls columns-2 column-last">
+		<p>
+			<label for="<?php echo $this->get_field_id( 'feed' ); ?>"><code>feed</code></label>
+			<input type="text" class="widefat code" id="<?php echo $this->get_field_id( 'feed' ); ?>" name="<?php echo $this->get_field_name( 'feed' ); ?>" value="<?php echo esc_attr( $instance['feed'] ); ?>" />
+		</p>
+		<p>
+			<label for="<?php echo $this->get_field_id( 'feed_image' ); ?>"><code>feed_image</code></label>
+			<input type="text" class="widefat code" id="<?php echo $this->get_field_id( 'feed_image' ); ?>" name="<?php echo $this->get_field_name( 'feed_image' ); ?>" value="<?php echo esc_attr( $instance['feed_image'] ); ?>" />
+		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'html' ); ?>">
 			<input class="checkbox" type="checkbox" <?php checked( $instance['html'], true ); ?> id="<?php echo $this->get_field_id( 'html' ); ?>" name="<?php echo $this->get_field_name( 'html' ); ?>" /> <?php _e( '<acronym title="Hypertext Markup Language">HTML</acronym>?', $this->textdomain ); ?> <code>html</code></label>
diff --git a/wp-content/themes/hybrid/library/classes/widget-bookmarks.php b/wp-content/themes/hybrid/library/classes/widget-bookmarks.php
index 9bcd92562..fecf9b203 100644
--- a/wp-content/themes/hybrid/library/classes/widget-bookmarks.php
+++ b/wp-content/themes/hybrid/library/classes/widget-bookmarks.php
@@ -1,87 +1,121 @@
 <?php
 /**
- * Bookmarks Widget Class
- *
  * The Bookmarks widget replaces the default WordPress Links widget. This version gives total
  * control over the output to the user by allowing the input of all the arguments typically seen
  * in the wp_list_bookmarks() function.
  *
- * @since 0.6
- * @link http://codex.wordpress.org/Template_Tags/wp_list_bookmarks
- * @link http://themehybrid.com/themes/hybrid/widgets
- *
  * @package Hybrid
  * @subpackage Classes
  */
 
+/**
+ * Bookmarks Widget Class
+ *
+ * @since 0.6.0
+ * @link http://codex.wordpress.org/Template_Tags/wp_list_bookmarks
+ * @link http://themehybrid.com/themes/hybrid/widgets
+ */
 class Hybrid_Widget_Bookmarks extends WP_Widget {
 
+	/**
+	 * Prefix for the widget.
+	 * @since 0.7.0
+	 */
 	var $prefix;
+
+	/**
+	 * Textdomain for the widget.
+	 * @since 0.7.0
+	 */
 	var $textdomain;
 
 	/**
 	 * Set up the widget's unique name, ID, class, description, and other options.
-	 * @since 0.6
+	 * @since 1.2.0
 	 */
-	function Hybrid_Widget_Bookmarks() {
+	function __construct() {
+
+		/* Set the widget prefix. */
 		$this->prefix = hybrid_get_prefix();
+
+		/* Set the widget textdomain. */
 		$this->textdomain = hybrid_get_textdomain();
 
-		$widget_ops = array( 'classname' => 'bookmarks', 'description' => __( 'An advanced widget that gives you total control over the output of your bookmarks (links).', $this->textdomain ) );
-		$control_ops = array( 'width' => 800, 'height' => 350, 'id_base' => "{$this->prefix}-bookmarks" );
-		$this->WP_Widget( "{$this->prefix}-bookmarks", __( 'Bookmarks', $this->textdomain ), $widget_ops, $control_ops );
+		/* Set up the widget options. */
+		$widget_options = array(
+			'classname' => 'bookmarks',
+			'description' => esc_html__( 'An advanced widget that gives you total control over the output of your bookmarks (links).', $this->textdomain )
+		);
+
+		/* Set up the widget control options. */
+		$control_options = array(
+			'width' => 800,
+			'height' => 350
+		);
+
+		/* Create the widget. */
+		$this->WP_Widget(
+			'hybrid-bookmarks',		// $this->id_base
+			__( 'Bookmarks', $this->textdomain ),	// $this->name	
+			$widget_options,			// $this->widget_options
+			$control_options			// $this->control_options
+		);
 	}
 
 	/**
 	 * Outputs the widget based on the arguments input through the widget controls.
-	 * @since 0.6
+	 * @since 0.6.0
 	 */
 	function widget( $args, $instance ) {
 		extract( $args );
 
-		$args = array();
-
-		$args['title_li'] = apply_filters( 'widget_title',  $instance['title_li'], $instance, $this->id_base );
-		$args['category'] = ( is_array( $instance['category'] ) ? join( ', ', $instance['category'] ) : $instance['category'] );
-		$args['exclude_category'] = ( is_array( $instance['exclude_category'] ) ? join( ', ', $instance['exclude_category'] ) : $instance['exclude_category'] );
-		$args['category_order'] = $instance['category_order'];
-		$args['category_orderby'] = $instance['category_orderby'];
-		$args['include'] = ( is_array( $instance['include'] ) ? join( ', ', $instance['include'] ) : $instance['include'] );
-		$args['exclude'] = ( is_array( $instance['exclude'] ) ? join( ', ', $instance['exclude'] ) : $instance['exclude'] );
-		$args['order'] = $instance['order'];
-		$args['orderby'] = $instance['orderby'];
-		$args['limit'] = ( ( $instance['limit'] ) ? intval( $instance['limit'] ) : -1 );
-		$args['between'] = $instance['between'];
-		$args['link_before'] = $instance['link_before'];
-		$args['link_after'] = $instance['link_after'];
-		$args['search'] = $instance['search'];
-		$args['categorize'] = isset( $instance['categorize'] ) ? $instance['categorize'] : false;
-		$args['show_description'] = isset( $instance['show_description'] ) ? $instance['show_description'] : false;
-		$args['hide_invisible'] = isset( $instance['hide_invisible'] ) ? $instance['hide_invisible'] : false;
-		$args['show_rating'] = isset( $instance['show_rating'] ) ? $instance['show_rating'] : false;
-		$args['show_updated'] = isset( $instance['show_updated'] ) ? $instance['show_updated'] : false;
-		$args['show_images'] = isset( $instance['show_images'] ) ? $instance['show_images'] : false;
-		$args['show_name'] = isset( $instance['show_name'] ) ? $instance['show_name'] : false;
-		$args['show_private'] = isset( $instance['show_private'] ) ? $instance['show_private'] : false;
-
-		if ( $args['categorize'] )
+		/* Set up the $before_widget ID for multiple widgets created by the bookmarks widget. */
+		if ( $instance['categorize'] )
 			$before_widget = preg_replace( '/id="[^"]*"/','id="%id"', $before_widget );
+
+		/* Add a class to $before_widget if one is set. */
 		if ( $instance['class'] )
 			$before_widget = str_replace( 'class="', 'class="' . esc_attr( $instance['class'] ) . ' ', $before_widget );
 
-		$args['title_before'] = $before_title;
-		$args['title_after'] = $after_title;
-		$args['category_before'] = $before_widget;
-		$args['category_after'] = $after_widget;
-		$args['category_name'] = false;
-		$args['echo'] = false;
+		/* Set up the arguments for wp_list_bookmarks(). */
+		$args = array(
+			'title_li' =>		apply_filters( 'widget_title', $instance['title_li'], $instance, $this->id_base ),
+			'category' =>		!empty( $instance['category'] ) ? join( ', ', $instance['category'] ) : '',
+			'exclude_category' =>	!empty( $instance['exclude_category'] ) ? join( ', ', $instance['exclude_category'] ) : '',
+			'category_order' =>	$instance['category_order'],
+			'category_orderby' => 	$instance['category_orderby'],
+			'include' =>		!empty( $instance['include'] ) ? join( ', ', $instance['include'] ) : '',
+			'exclude' =>		!empty( $instance['exclude'] ) ? join( ', ', $instance['exclude'] ) : '',
+			'order' =>		$instance['order'],
+			'orderby' =>		$instance['orderby'],
+			'limit' =>			$instance['limit'] ? intval( $instance['limit'] ) : -1,
+			'between' =>		$instance['between'],
+			'link_before' =>		$instance['link_before'],
+			'link_after' =>		$instance['link_after'],
+			'search' =>		$instance['search'],
+			'categorize' =>		!empty( $instance['categorize'] ) ? true : false,
+			'show_description' =>	!empty( $instance['show_description'] ) ? true : false,
+			'hide_invisible' =>		!empty( $instance['hide_invisible'] ) ? true : false,
+			'show_rating' =>		!empty( $instance['show_rating'] ) ? true : false,
+			'show_updated' =>		!empty( $instance['show_updated'] ) ? true : false,
+			'show_images' =>		!empty( $instance['show_images'] ) ? true : false,
+			'show_name' =>		!empty( $instance['show_name'] ) ? true : false,
+			'show_private' =>		!empty( $instance['show_private'] ) ? true : false,
+			'title_before' => 		$before_title,
+			'title_after' => 		$after_title,
+			'category_before' =>	$before_widget,
+			'category_after' =>	$after_widget,
+			'category_name' =>	false,
+			'echo' =>			false
+		);
 
+		/* Output the bookmarks widget. */
 		echo str_replace( array( "\r", "\n", "\t" ), '', wp_list_bookmarks( $args ) );
 	}
 
 	/**
 	 * Updates the widget control options for the particular instance of the widget.
-	 * @since 0.6
+	 * @since 0.6.0
 	 */
 	function update( $new_instance, $old_instance ) {
 		$instance = $old_instance;
@@ -115,46 +149,59 @@ class Hybrid_Widget_Bookmarks extends WP_Widget {
 
 	/**
 	 * Displays the widget control options in the Widgets admin screen.
-	 * @since 0.6
+	 * @since 0.6.0
 	 */
 	function form( $instance ) {
 
-		//Defaults
+		/* Set up the default form values. */
 		$defaults = array(
-			'title_li' => __( 'Bookmarks', $this->textdomain ),
+			'title_li' => esc_attr__( 'Bookmarks', $this->textdomain ),
 			'categorize' => true,
+			'category_order' => 'ASC',
+			'category_orderby' => 'name',
+			'category' => array(),
+			'exclude_category' => array(),
+			'limit' => '',
+			'order' => 'ASC',
+			'orderby' => 'name',
+			'include' => array(),
+			'exclude' => array(),
+			'search' => '',
 			'hide_invisible' => true,
 			'show_description' => false,
-			'show_image' => false,
+			'show_images' => false,
 			'show_rating' => false,
 			'show_updated' => false,
 			'show_private' => false,
 			'show_name' => false,
 			'class' => 'linkcat',
 			'link_before' => '<span>',
-			'link_after' => '</span>'
+			'link_after' => '</span>',
+			'between' => '<br />',
 		);
+
+		/* Merge the user-selected arguments with the defaults. */
 		$instance = wp_parse_args( (array) $instance, $defaults );
 
-		$terms = get_categories( array( 'type' => 'link' ) );
+		$terms = get_terms( 'link_category' );
 		$bookmarks = get_bookmarks( array( 'hide_invisible' => false ) );
-		$category_order = array( 'ASC' => __( 'Ascending', $this->textdomain ), 'DESC' => __( 'Descending', $this->textdomain ) );
-		$category_orderby = array( 'count' => __( 'Count', $this->textdomain ), 'ID' => __( 'ID', $this->textdomain ), 'name' => __( 'Name', $this->textdomain ), 'slug' => __( 'Slug', $this->textdomain ) );
-		$order = array( 'ASC' => __( 'Ascending', $this->textdomain ), 'DESC' => __( 'Descending', $this->textdomain ) );
-		$orderby = array( 'id' => __( 'ID', $this->textdomain ), 'description' => __( 'Description',  $this->textdomain ), 'length' => __( 'Length',  $this->textdomain ), 'name' => __( 'Name',  $this->textdomain ), 'notes' => __( 'Notes',  $this->textdomain ), 'owner' => __( 'Owner',  $this->textdomain ), 'rand' => __( 'Random',  $this->textdomain ), 'rating' => __( 'Rating',  $this->textdomain ), 'rel' => __( 'Rel',  $this->textdomain ), 'rss' => __( 'RSS',  $this->textdomain ), 'target' => __( 'Target',  $this->textdomain ), 'updated' => __( 'Updated',  $this->textdomain ), 'url' => __( 'URL',  $this->textdomain ) );
+		$category_order = array( 'ASC' => esc_attr__( 'Ascending', $this->textdomain ), 'DESC' => esc_attr__( 'Descending', $this->textdomain ) );
+		$category_orderby = array( 'count' => esc_attr__( 'Count', $this->textdomain ), 'ID' => esc_attr__( 'ID', $this->textdomain ), 'name' => esc_attr__( 'Name', $this->textdomain ), 'slug' => esc_attr__( 'Slug', $this->textdomain ) );
+		$order = array( 'ASC' => esc_attr__( 'Ascending', $this->textdomain ), 'DESC' => esc_attr__( 'Descending', $this->textdomain ) );
+		$orderby = array( 'id' => esc_attr__( 'ID', $this->textdomain ), 'description' => esc_attr__( 'Description',  $this->textdomain ), 'length' => esc_attr__( 'Length',  $this->textdomain ), 'name' => esc_attr__( 'Name',  $this->textdomain ), 'notes' => esc_attr__( 'Notes',  $this->textdomain ), 'owner' => esc_attr__( 'Owner',  $this->textdomain ), 'rand' => esc_attr__( 'Random',  $this->textdomain ), 'rating' => esc_attr__( 'Rating',  $this->textdomain ), 'rel' => esc_attr__( 'Rel',  $this->textdomain ), 'rss' => esc_attr__( 'RSS',  $this->textdomain ), 'target' => esc_attr__( 'Target',  $this->textdomain ), 'updated' => esc_attr__( 'Updated',  $this->textdomain ), 'url' => esc_attr__( 'URL',  $this->textdomain ) );
 
 		?>
 
 		<div class="hybrid-widget-controls columns-3">
 		<p>
 			<label for="<?php echo $this->get_field_id( 'title_li' ); ?>"><?php _e( 'Title:', $this->textdomain ); ?></label>
-			<input type="text" class="widefat" id="<?php echo $this->get_field_id( 'title_li' ); ?>" name="<?php echo $this->get_field_name( 'title_li' ); ?>" value="<?php echo $instance['title_li']; ?>" />
+			<input type="text" class="widefat" id="<?php echo $this->get_field_id( 'title_li' ); ?>" name="<?php echo $this->get_field_name( 'title_li' ); ?>" value="<?php echo esc_attr( $instance['title_li'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'category_order' ); ?>"><code>category_order</code></label> 
 			<select class="widefat" id="<?php echo $this->get_field_id( 'category_order' ); ?>" name="<?php echo $this->get_field_name( 'category_order' ); ?>">
 				<?php foreach ( $category_order as $option_value => $option_label ) { ?>
-					<option value="<?php echo $option_value; ?>" <?php selected( $instance['category_order'], $option_value ); ?>><?php echo $option_label; ?></option>
+					<option value="<?php echo esc_attr( $option_value ); ?>" <?php selected( $instance['category_order'], $option_value ); ?>><?php echo esc_html( $option_label ); ?></option>
 				<?php } ?>
 			</select>
 		</p>
@@ -162,7 +209,7 @@ class Hybrid_Widget_Bookmarks extends WP_Widget {
 			<label for="<?php echo $this->get_field_id( 'category_orderby' ); ?>"><code>category_orderby</code></label> 
 			<select class="widefat" id="<?php echo $this->get_field_id( 'category_orderby' ); ?>" name="<?php echo $this->get_field_name( 'category_orderby' ); ?>">
 				<?php foreach ( $category_orderby as $option_value => $option_label ) { ?>
-					<option value="<?php echo $option_value; ?>" <?php selected( $instance['category_orderby'], $option_value ); ?>><?php echo $option_label; ?></option>
+					<option value="<?php echo esc_attr( $option_value ); ?>" <?php selected( $instance['category_orderby'], $option_value ); ?>><?php echo esc_html( $option_label ); ?></option>
 				<?php } ?>
 			</select>
 		</p>
@@ -170,7 +217,7 @@ class Hybrid_Widget_Bookmarks extends WP_Widget {
 			<label for="<?php echo $this->get_field_id( 'category' ); ?>"><code>category</code></label> 
 			<select class="widefat" id="<?php echo $this->get_field_id( 'category' ); ?>" name="<?php echo $this->get_field_name( 'category' ); ?>[]" size="4" multiple="multiple">
 				<?php foreach ( $terms as $term ) { ?>
-					<option value="<?php echo $term->term_id; ?>" <?php echo ( in_array( $term->term_id, (array) $instance['category'] ) ? 'selected="selected"' : '' ); ?>><?php echo $term->name; ?></option>
+					<option value="<?php echo esc_attr( $term->term_id ); ?>" <?php echo ( in_array( $term->term_id, (array) $instance['category'] ) ? 'selected="selected"' : '' ); ?>><?php echo esc_html( $term->name ); ?></option>
 				<?php } ?>
 			</select>
 		</p>
@@ -178,13 +225,13 @@ class Hybrid_Widget_Bookmarks extends WP_Widget {
 			<label for="<?php echo $this->get_field_id( 'exclude_category' ); ?>"><code>exclude_category</code></label> 
 			<select class="widefat" id="<?php echo $this->get_field_id( 'exclude_category' ); ?>" name="<?php echo $this->get_field_name( 'exclude_category' ); ?>[]" size="4" multiple="multiple">
 				<?php foreach ( $terms as $term ) { ?>
-					<option value="<?php echo $term->term_id; ?>" <?php echo ( in_array( $term->term_id, (array) $instance['exclude_category'] ) ? 'selected="selected"' : '' ); ?>><?php echo $term->name; ?></option>
+					<option value="<?php echo esc_attr( $term->term_id ); ?>" <?php echo ( in_array( $term->term_id, (array) $instance['exclude_category'] ) ? 'selected="selected"' : '' ); ?>><?php echo esc_html( $term->name ); ?></option>
 				<?php } ?>
 			</select>
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'class' ); ?>"><code>class</code></label>
-			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'class' ); ?>" name="<?php echo $this->get_field_name( 'class' ); ?>" value="<?php echo $instance['class']; ?>" />
+			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'class' ); ?>" name="<?php echo $this->get_field_name( 'class' ); ?>" value="<?php echo esc_attr( $instance['class'] ); ?>" />
 		</p>
 
 		</div>
@@ -193,13 +240,13 @@ class Hybrid_Widget_Bookmarks extends WP_Widget {
 
 		<p>
 			<label for="<?php echo $this->get_field_id( 'limit' ); ?>"><code>limit</code></label>
-			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'limit' ); ?>" name="<?php echo $this->get_field_name( 'limit' ); ?>" value="<?php echo $instance['limit']; ?>" />
+			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'limit' ); ?>" name="<?php echo $this->get_field_name( 'limit' ); ?>" value="<?php echo esc_attr( $instance['limit'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'order' ); ?>"><code>order</code></label> 
 			<select class="widefat" id="<?php echo $this->get_field_id( 'order' ); ?>" name="<?php echo $this->get_field_name( 'order' ); ?>">
 				<?php foreach ( $order as $option_value => $option_label ) { ?>
-					<option value="<?php echo $option_value; ?>" <?php selected( $instance['order'], $option_value ); ?>><?php echo $option_label; ?></option>
+					<option value="<?php echo esc_attr( $option_value ); ?>" <?php selected( $instance['order'], $option_value ); ?>><?php echo esc_html( $option_label ); ?></option>
 				<?php } ?>
 			</select>
 		</p>
@@ -207,7 +254,7 @@ class Hybrid_Widget_Bookmarks extends WP_Widget {
 			<label for="<?php echo $this->get_field_id( 'orderby' ); ?>"><code>orderby</code></label> 
 			<select class="widefat" id="<?php echo $this->get_field_id( 'orderby' ); ?>" name="<?php echo $this->get_field_name( 'orderby' ); ?>">
 				<?php foreach ( $orderby as $option_value => $option_label ) { ?>
-					<option value="<?php echo $option_value; ?>" <?php selected( $instance['orderby'], $option_value ); ?>><?php echo $option_label; ?></option>
+					<option value="<?php echo esc_attr( $option_value ); ?>" <?php selected( $instance['orderby'], $option_value ); ?>><?php echo esc_html( $option_label ); ?></option>
 				<?php } ?>
 			</select>
 		</p>
@@ -215,7 +262,7 @@ class Hybrid_Widget_Bookmarks extends WP_Widget {
 			<label for="<?php echo $this->get_field_id( 'include' ); ?>"><code>include</code></label> 
 			<select class="widefat" id="<?php echo $this->get_field_id( 'include' ); ?>" name="<?php echo $this->get_field_name( 'include' ); ?>[]" size="4" multiple="multiple">
 				<?php foreach ( $bookmarks as $bookmark ) { ?>
-					<option value="<?php echo $bookmark->link_id; ?>" <?php echo ( in_array( $bookmark->link_id, (array) $instance['include'] ) ? 'selected="selected"' : '' ); ?>><?php echo $bookmark->link_name; ?></option>
+					<option value="<?php echo esc_attr( $bookmark->link_id ); ?>" <?php echo ( in_array( $bookmark->link_id, (array) $instance['include'] ) ? 'selected="selected"' : '' ); ?>><?php echo esc_html( $bookmark->link_name ); ?></option>
 				<?php } ?>
 			</select>
 		</p>
@@ -223,13 +270,13 @@ class Hybrid_Widget_Bookmarks extends WP_Widget {
 			<label for="<?php echo $this->get_field_id( 'exclude' ); ?>"><code>exclude</code></label> 
 			<select class="widefat" id="<?php echo $this->get_field_id( 'exclude' ); ?>" name="<?php echo $this->get_field_name( 'exclude' ); ?>[]" size="4" multiple="multiple">
 				<?php foreach ( $bookmarks as $bookmark ) { ?>
-					<option value="<?php echo $bookmark->link_id; ?>" <?php echo ( in_array( $bookmark->link_id, (array) $instance['exclude'] ) ? 'selected="selected"' : '' ); ?>><?php echo $bookmark->link_name; ?></option>
+					<option value="<?php echo esc_attr( $bookmark->link_id ); ?>" <?php echo ( in_array( $bookmark->link_id, (array) $instance['exclude'] ) ? 'selected="selected"' : '' ); ?>><?php echo esc_html( $bookmark->link_name ); ?></option>
 				<?php } ?>
 			</select>
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'search' ); ?>"><code>search</code></label>
-			<input type="text" class="widefat code" id="<?php echo $this->get_field_id( 'search' ); ?>" name="<?php echo $this->get_field_name( 'search' ); ?>" value="<?php echo $instance['search']; ?>" />
+			<input type="text" class="widefat code" id="<?php echo $this->get_field_id( 'search' ); ?>" name="<?php echo $this->get_field_name( 'search' ); ?>" value="<?php echo esc_attr( $instance['search'] ); ?>" />
 		</p>
 
 		</div>
@@ -237,15 +284,15 @@ class Hybrid_Widget_Bookmarks extends WP_Widget {
 		<div class="hybrid-widget-controls columns-3 column-last">
 		<p>
 			<label for="<?php echo $this->get_field_id( 'between' ); ?>"><code>between</code></label>
-			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'between' ); ?>" name="<?php echo $this->get_field_name( 'between' ); ?>" value="<?php echo $instance['between']; ?>" />
+			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'between' ); ?>" name="<?php echo $this->get_field_name( 'between' ); ?>" value="<?php echo esc_attr( $instance['between'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'link_before' ); ?>"><code>link_before</code></label>
-			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'link_before' ); ?>" name="<?php echo $this->get_field_name( 'link_before' ); ?>" value="<?php echo $instance['link_before']; ?>" />
+			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'link_before' ); ?>" name="<?php echo $this->get_field_name( 'link_before' ); ?>" value="<?php echo esc_attr( $instance['link_before'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'link_after' ); ?>"><code>link_after</code></label>
-			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'link_after' ); ?>" name="<?php echo $this->get_field_name( 'link_after' ); ?>" value="<?php echo $instance['link_after']; ?>" />
+			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'link_after' ); ?>" name="<?php echo $this->get_field_name( 'link_after' ); ?>" value="<?php echo esc_attr( $instance['link_after'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'categorize' ); ?>">
diff --git a/wp-content/themes/hybrid/library/classes/widget-calendar.php b/wp-content/themes/hybrid/library/classes/widget-calendar.php
index fab5f932e..74233f288 100644
--- a/wp-content/themes/hybrid/library/classes/widget-calendar.php
+++ b/wp-content/themes/hybrid/library/classes/widget-calendar.php
@@ -1,61 +1,96 @@
 <?php
 /**
- * Calendar Widget Class
- *
  * The calendar widget was created to give users the ability to show a post calendar for their blog 
  * using all the available options given in the get_calendar() function. It replaces the default WordPress
  * calendar widget.
  *
- * @since 0.6
- * @link http://codex.wordpress.org/Function_Reference/get_calendar
- * @link http://themehybrid.com/themes/hybrid/widgets
- *
  * @package Hybrid
  * @subpackage Classes
  */
 
+/**
+ * Calendar Widget Class
+ *
+ * @since 0.6.0
+ * @link http://codex.wordpress.org/Function_Reference/get_calendar
+ * @link http://themehybrid.com/themes/hybrid/widgets
+ */
 class Hybrid_Widget_Calendar extends WP_Widget {
 
+	/**
+	 * Prefix for the widget.
+	 * @since 0.7.0
+	 */
 	var $prefix;
+
+	/**
+	 * Textdomain for the widget.
+	 * @since 0.7.0
+	 */
 	var $textdomain;
 
 	/**
 	 * Set up the widget's unique name, ID, class, description, and other options.
-	 * @since 0.6
+	 * @since 1.2.0
 	 */
-	function Hybrid_Widget_Calendar() {
+	function __construct() {
+
+		/* Set the widget prefix. */
 		$this->prefix = hybrid_get_prefix();
+
+		/* Set the widget textdomain. */
 		$this->textdomain = hybrid_get_textdomain();
 
-		$widget_ops = array( 'classname' => 'calendar', 'description' => __( 'An advanced widget that gives you total control over the output of your calendar.', $this->textdomain ) );
-		$control_ops = array( 'width' => 200, 'height' => 350, 'id_base' => "{$this->prefix}-calendar" );
-		$this->WP_Widget( "{$this->prefix}-calendar", __( 'Calendar', $this->textdomain ), $widget_ops, $control_ops );
+		/* Set up the widget options. */
+		$widget_options = array(
+			'classname' => 'calendar',
+			'description' => esc_html__( 'An advanced widget that gives you total control over the output of your calendar.', $this->textdomain )
+		);
+
+		/* Set up the widget control options. */
+		$control_options = array(
+			'width' => 200,
+			'height' => 350
+		);
+
+		/* Create the widget. */
+		$this->WP_Widget(
+			'hybrid-calendar',			// $this->id_base
+			__( 'Calendar', $this->textdomain ),	// $this->name
+			$widget_options,			// $this->widget_options
+			$control_options			// $this->control_options
+		);
 	}
 
 	/**
 	 * Outputs the widget based on the arguments input through the widget controls.
-	 * @since 0.6
+	 * @since 0.6.0
 	 */
 	function widget( $args, $instance ) {
 		extract( $args );
 
-		$initial = isset( $instance['initial'] ) ? $instance['initial'] : false;
+		/* Get the $initial argument. */
+		$initial = !empty( $instance['initial'] ) ? true : false;
 
+		/* Output the theme's widget wrapper. */
 		echo $before_widget;
 
-		if ( $instance['title'] )
+		/* If a title was input by the user, display it. */
+		if ( !empty( $instance['title'] ) )
 			echo $before_title . apply_filters( 'widget_title',  $instance['title'], $instance, $this->id_base ) . $after_title;
 
+		/* Display the calendar. */
 		echo '<div class="calendar-wrap">';
-			get_calendar( $initial );
+			echo str_replace( array( "\r", "\n", "\t" ), '', get_calendar( $initial, false ) );
 		echo '</div><!-- .calendar-wrap -->';
 
+		/* Close the theme's widget wrapper. */
 		echo $after_widget;
 	}
 
 	/**
 	 * Updates the widget control options for the particular instance of the widget.
-	 * @since 0.6
+	 * @since 0.6.0
 	 */
 	function update( $new_instance, $old_instance ) {
 		$instance = $old_instance;
@@ -70,21 +105,23 @@ class Hybrid_Widget_Calendar extends WP_Widget {
 
 	/**
 	 * Displays the widget control options in the Widgets admin screen.
-	 * @since 0.6
+	 * @since 0.6.0
 	 */
 	function form( $instance ) {
 
-		//Defaults
+		/* Set up the default form values. */
 		$defaults = array(
-			'title' => __( 'Calendar', $this->textdomain ),
+			'title' => esc_attr__( 'Calendar', $this->textdomain ),
 			'initial' => false
 		);
+
+		/* Merge the user-selected arguments with the defaults. */
 		$instance = wp_parse_args( (array) $instance, $defaults ); ?>
 
 		<div class="hybrid-widget-controls columns-1">
 		<p>
 			<label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:', $this->textdomain ); ?></label>
-			<input type="text" class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo $instance['title']; ?>" />
+			<input type="text" class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo esc_attr( $instance['title'] ); ?>" />
 		</p>
 		<p>
 			<input class="checkbox" type="checkbox" <?php checked( $instance['initial'], true ); ?> id="<?php echo $this->get_field_id( 'initial' ); ?>" name="<?php echo $this->get_field_name( 'initial' ); ?>" /> 
diff --git a/wp-content/themes/hybrid/library/classes/widget-categories.php b/wp-content/themes/hybrid/library/classes/widget-categories.php
index dafacc04a..2b1f4730c 100644
--- a/wp-content/themes/hybrid/library/classes/widget-categories.php
+++ b/wp-content/themes/hybrid/library/classes/widget-categories.php
@@ -1,87 +1,124 @@
 <?php
 /**
- * Categories Widget Class
- *
  * The Categories widget replaces the default WordPress Categories widget. This version gives total
  * control over the output to the user by allowing the input of all the arguments typically seen
  * in the wp_list_categories() function.
  *
- * @since 0.6
- * @link http://codex.wordpress.org/Template_Tags/wp_list_categories
- * @link http://themehybrid.com/themes/hybrid/widgets
- *
  * @package Hybrid
  * @subpackage Classes
  */
 
+/**
+ * Categories Widget Class
+ *
+ * @since 0.6
+ * @link http://codex.wordpress.org/Template_Tags/wp_list_categories
+ * @link http://themehybrid.com/themes/hybrid/widgets
+ */
 class Hybrid_Widget_Categories extends WP_Widget {
 
+	/**
+	 * Prefix for the widget.
+	 * @since 0.7.0
+	 */
 	var $prefix;
+
+	/**
+	 * Textdomain for the widget.
+	 * @since 0.7.0
+	 */
 	var $textdomain;
 
 	/**
 	 * Set up the widget's unique name, ID, class, description, and other options.
-	 * @since 0.6
+	 * @since 1.2.0
 	 */
-	function Hybrid_Widget_Categories() {
+	function __construct() {
+
+		/* Set the widget prefix. */
 		$this->prefix = hybrid_get_prefix();
+
+		/* Set the widget textdomain. */
 		$this->textdomain = hybrid_get_textdomain();
 
-		$widget_ops = array( 'classname' => 'categories', 'description' => __( 'An advanced widget that gives you total control over the output of your category links.', $this->textdomain ) );
-		$control_ops = array( 'width' => 800, 'height' => 350, 'id_base' => "{$this->prefix}-categories" );
-		$this->WP_Widget( "{$this->prefix}-categories", __( 'Categories', $this->textdomain ), $widget_ops, $control_ops );
+		/* Set up the widget options. */
+		$widget_options = array(
+			'classname' => 'categories',
+			'description' => esc_html__( 'An advanced widget that gives you total control over the output of your category links.', $this->textdomain )
+		);
+
+		/* Set up the widget control options. */
+		$control_options = array(
+			'width' => 800,
+			'height' => 350
+		);
+
+		/* Create the widget. */
+		$this->WP_Widget(
+			'hybrid-categories',		// $this->id_base
+			__( 'Categories', $this->textdomain ),	// $this->name
+			$widget_options,			// $this->widget_options
+			$control_options			// $this->control_options
+		);
 	}
 
 	/**
 	 * Outputs the widget based on the arguments input through the widget controls.
-	 * @since 0.6
+	 * @since 0.6.0
 	 */
 	function widget( $args, $instance ) {
 		extract( $args );
 
-		$args = array();
-
-		$args['taxonomy'] = $instance['taxonomy'];
-		$args['style'] = $instance['style'];
-		$args['orderby'] = $instance['orderby'];
-		$args['order'] = $instance['order'];
-		$args['include'] = ( is_array( $instance['include'] ) ? join( ', ', $instance['include'] ) : $instance['include'] );
-		$args['exclude'] = ( is_array( $instance['exclude'] ) ? join( ', ', $instance['exclude'] ) : $instance['exclude'] );
-		$args['exclude_tree'] = $instance['exclude_tree'];
-		$args['depth'] = intval( $instance['depth'] );
-		$args['number'] = intval( $instance['number'] );
-		$args['child_of'] = intval( $instance['child_of'] );
-		$args['current_category'] = intval( $instance['current_category'] );
-		$args['feed'] = $instance['feed'];
-		$args['feed_type'] = $instance['feed_type'];
-		$args['feed_image'] = esc_url( $instance['feed_image'] );
-		$args['search'] = $instance['search'];
-		$args['hierarchical'] = isset( $instance['hierarchical'] ) ? $instance['hierarchical'] : false;
-		$args['use_desc_for_title'] = isset( $instance['use_desc_for_title'] ) ? $instance['use_desc_for_title'] : false;
-		$args['show_last_update'] = isset( $instance['show_last_update'] ) ? $instance['show_last_updated'] : false;
-		$args['show_count'] = isset( $instance['show_count'] ) ? $instance['show_count'] : false;
-		$args['hide_empty'] = isset( $instance['hide_empty'] ) ? $instance['hide_empty'] : false;
-		$args['title_li'] = false;
-		$args['echo'] = false;
+		/* Set up the arguments for wp_list_categories(). */
+		$args = array(
+			'taxonomy' =>		$instance['taxonomy'],
+			'style' =>			$instance['style'],
+			'orderby' =>		$instance['orderby'],
+			'order' =>		$instance['order'],
+			'include' =>		!empty( $instance['include'] ) ? join( ', ', $instance['include'] ) : '',
+			'exclude' =>		!empty( $instance['exclude'] ) ? join( ', ', $instance['exclude'] ) : '',
+			'exclude_tree' =>		$instance['exclude_tree'],
+			'depth' =>		intval( $instance['depth'] ),
+			'number' =>		intval( $instance['number'] ),
+			'child_of' =>		intval( $instance['child_of'] ),
+			'current_category' =>	intval( $instance['current_category'] ),
+			'feed' =>			$instance['feed'],
+			'feed_type' =>		$instance['feed_type'],
+			'feed_image' =>		esc_url( $instance['feed_image'] ),
+			'search' =>		$instance['search'],
+			'hierarchical' =>		!empty( $instance['hierarchical'] ) ? true : false,
+			'use_desc_for_title' =>	!empty( $instance['use_desc_for_title'] ) ? true : false,
+			'show_last_update' =>	!empty( $instance['show_last_update'] ) ? true : false,
+			'show_count' =>		!empty( $instance['show_count'] ) ? true : false,
+			'hide_empty' =>		!empty( $instance['hide_empty'] ) ? true : false,
+			'title_li' =>		false,
+			'echo' =>			false
+		);
 
+		/* Output the theme's widget wrapper. */
 		echo $before_widget;
 
-		if ( $instance['title'] )
+		/* If a title was input by the user, display it. */
+		if ( !empty( $instance['title'] ) )
 			echo $before_title . apply_filters( 'widget_title',  $instance['title'], $instance, $this->id_base ) . $after_title;
 
+		/* Get the categories list. */
 		$categories = str_replace( array( "\r", "\n", "\t" ), '', wp_list_categories( $args ) );
 
+		/* If 'list' is the user-selected style, wrap the categories in an unordered list. */
 		if ( 'list' == $args['style'] )
 			$categories = '<ul class="xoxo categories">' . $categories . '</ul><!-- .xoxo .categories -->';
 
+		/* Output the categories list. */
 		echo $categories;
 
+		/* Close the theme's widget wrapper. */
 		echo $after_widget;
 	}
 
 	/**
 	 * Updates the widget control options for the particular instance of the widget.
-	 * @since 0.6
+	 * @since 0.6.0
 	 */
 	function update( $new_instance, $old_instance ) {
 		$instance = $old_instance;
@@ -117,44 +154,58 @@ class Hybrid_Widget_Categories extends WP_Widget {
 
 	/**
 	 * Displays the widget control options in the Widgets admin screen.
-	 * @since 0.6
+	 * @since 0.6.0
 	 */
 	function form( $instance ) {
 
-		// Defaults
+		/* Set up the default form values. */
 		$defaults = array(
-			'title' => __( 'Categories', $this->textdomain ),
+			'title' => esc_attr__( 'Categories', $this->textdomain ),
 			'taxonomy' => 'category',
 			'style' => 'list',
 			'include' => array(),
 			'exclude' => array(),
+			'exclude_tree' => '',
+			'child_of' => '',
+			'current_category' => '',
+			'search' => '',
 			'hierarchical' => true,
 			'hide_empty' => true,
 			'order' => 'ASC',
-			'orderby' => 'name'
+			'orderby' => 'name',
+			'depth' => 0,
+			'number' => '',
+			'feed' => '',
+			'feed_type' => '',
+			'feed_image' => '',
+			'use_desc_for_title' => false,
+			'show_last_update' => false,
+			'show_count' => false,
 		);
+
+		/* Merge the user-selected arguments with the defaults. */
 		$instance = wp_parse_args( (array) $instance, $defaults );
 
 		/* <select> element options. */
 		$taxonomies = get_taxonomies( array( 'show_tagcloud' => true ), 'objects' );
 		$terms = get_terms( $instance['taxonomy'] );
-		$style = array( 'list' => __( 'List', $this->textdomain ), 'none' => __( 'None', $this->textdomain ) );
-		$order = array( 'ASC' => __( 'Ascending', $this->textdomain ), 'DESC' => __( 'Descending', $this->textdomain ) );
-		$orderby = array( 'count' => __( 'Count', $this->textdomain ), 'ID' => __( 'ID', $this->textdomain ), 'name' => __( 'Name', $this->textdomain ), 'slug' => __( 'Slug', $this->textdomain ), 'term_group' => __( 'Term Group', $this->textdomain ) );
-		$feed_type = array( '' => '', 'atom' => __( 'Atom', $this->textdomain ), 'rdf' => __( 'RDF', $this->textdomain ), 'rss' => __( 'RSS', $this->textdomain ), 'rss2' => __( 'RSS 2.0', $this->textdomain ) );
+		$style = array( 'list' => esc_attr__( 'List', $this->textdomain ), 'none' => esc_attr__( 'None', $this->textdomain ) );
+		$order = array( 'ASC' => esc_attr__( 'Ascending', $this->textdomain ), 'DESC' => esc_attr__( 'Descending', $this->textdomain ) );
+		$orderby = array( 'count' => esc_attr__( 'Count', $this->textdomain ), 'ID' => esc_attr__( 'ID', $this->textdomain ), 'name' => esc_attr__( 'Name', $this->textdomain ), 'slug' => esc_attr__( 'Slug', $this->textdomain ), 'term_group' => esc_attr__( 'Term Group', $this->textdomain ) );
+		$feed_type = array( '' => '', 'atom' => esc_attr__( 'Atom', $this->textdomain ), 'rdf' => esc_attr__( 'RDF', $this->textdomain ), 'rss' => esc_attr__( 'RSS', $this->textdomain ), 'rss2' => esc_attr__( 'RSS 2.0', $this->textdomain ) );
 
 		?>
 
 		<div class="hybrid-widget-controls columns-3">
 		<p>
 			<label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:', $this->textdomain ); ?></label>
-			<input type="text" class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo $instance['title']; ?>" />
+			<input type="text" class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo esc_attr( $instance['title'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'taxonomy' ); ?>"><code>taxonomy</code></label> 
 			<select class="widefat" id="<?php echo $this->get_field_id( 'taxonomy' ); ?>" name="<?php echo $this->get_field_name( 'taxonomy' ); ?>">
 				<?php foreach ( $taxonomies as $taxonomy ) { ?>
-					<option value="<?php echo $taxonomy->name; ?>" <?php selected( $instance['taxonomy'], $taxonomy->name ); ?>><?php echo $taxonomy->labels->singular_name; ?></option>
+					<option value="<?php echo esc_attr( $taxonomy->name ); ?>" <?php selected( $instance['taxonomy'], $taxonomy->name ); ?>><?php echo esc_html( $taxonomy->labels->singular_name ); ?></option>
 				<?php } ?>
 			</select>
 		</p>
@@ -162,7 +213,7 @@ class Hybrid_Widget_Categories extends WP_Widget {
 			<label for="<?php echo $this->get_field_id( 'style' ); ?>"><code>style</code></label> 
 			<select class="widefat" id="<?php echo $this->get_field_id( 'style' ); ?>" name="<?php echo $this->get_field_name( 'style' ); ?>">
 				<?php foreach ( $style as $option_value => $option_label ) { ?>
-					<option value="<?php echo $option_value; ?>" <?php selected( $instance['style'], $option_value ); ?>><?php echo $option_label; ?></option>
+					<option value="<?php echo esc_attr( $option_value ); ?>" <?php selected( $instance['style'], $option_value ); ?>><?php echo esc_html( $option_label ); ?></option>
 				<?php } ?>
 			</select>
 		</p>
@@ -170,7 +221,7 @@ class Hybrid_Widget_Categories extends WP_Widget {
 			<label for="<?php echo $this->get_field_id( 'order' ); ?>"><code>order</code></label> 
 			<select class="widefat" id="<?php echo $this->get_field_id( 'order' ); ?>" name="<?php echo $this->get_field_name( 'order' ); ?>">
 				<?php foreach ( $order as $option_value => $option_label ) { ?>
-					<option value="<?php echo $option_value; ?>" <?php selected( $instance['order'], $option_value ); ?>><?php echo $option_label; ?></option>
+					<option value="<?php echo esc_attr( $option_value ); ?>" <?php selected( $instance['order'], $option_value ); ?>><?php echo esc_html( $option_label ); ?></option>
 				<?php } ?>
 			</select>
 		</p>
@@ -178,17 +229,17 @@ class Hybrid_Widget_Categories extends WP_Widget {
 			<label for="<?php echo $this->get_field_id( 'orderby' ); ?>"><code>orderby</code></label> 
 			<select class="widefat" id="<?php echo $this->get_field_id( 'orderby' ); ?>" name="<?php echo $this->get_field_name( 'orderby' ); ?>">
 				<?php foreach ( $orderby as $option_value => $option_label ) { ?>
-					<option value="<?php echo $option_value; ?>" <?php selected( $instance['orderby'], $option_value ); ?>><?php echo $option_label; ?></option>
+					<option value="<?php echo esc_attr( $option_value ); ?>" <?php selected( $instance['orderby'], $option_value ); ?>><?php echo esc_html( $option_label ); ?></option>
 				<?php } ?>
 			</select>
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'depth' ); ?>"><code>depth</code></label>
-			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'depth' ); ?>" name="<?php echo $this->get_field_name( 'depth' ); ?>" value="<?php echo $instance['depth']; ?>" />
+			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'depth' ); ?>" name="<?php echo $this->get_field_name( 'depth' ); ?>" value="<?php echo esc_attr( $instance['depth'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'number' ); ?>"><code>number</code></label>
-			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'number' ); ?>" name="<?php echo $this->get_field_name( 'number' ); ?>" value="<?php echo $instance['number']; ?>" />
+			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'number' ); ?>" name="<?php echo $this->get_field_name( 'number' ); ?>" value="<?php echo esc_attr( $instance['number'] ); ?>" />
 		</p>
 		</div>
 
@@ -197,7 +248,7 @@ class Hybrid_Widget_Categories extends WP_Widget {
 			<label for="<?php echo $this->get_field_id( 'include' ); ?>"><code>include</code></label> 
 			<select class="widefat" id="<?php echo $this->get_field_id( 'include' ); ?>" name="<?php echo $this->get_field_name( 'include' ); ?>[]" size="4" multiple="multiple">
 				<?php foreach ( $terms as $term ) { ?>
-					<option value="<?php echo $term->term_id; ?>" <?php echo ( in_array( $term->term_id, (array) $instance['include'] ) ? 'selected="selected"' : '' ); ?>><?php echo $term->name; ?></option>
+					<option value="<?php echo esc_attr( $term->term_id ); ?>" <?php echo ( in_array( $term->term_id, (array) $instance['include'] ) ? 'selected="selected"' : '' ); ?>><?php echo esc_html( $term->name ); ?></option>
 				<?php } ?>
 			</select>
 		</p>
@@ -205,44 +256,44 @@ class Hybrid_Widget_Categories extends WP_Widget {
 			<label for="<?php echo $this->get_field_id( 'exclude' ); ?>"><code>exclude</code></label> 
 			<select class="widefat" id="<?php echo $this->get_field_id( 'exclude' ); ?>" name="<?php echo $this->get_field_name( 'exclude' ); ?>[]" size="4" multiple="multiple">
 				<?php foreach ( $terms as $term ) { ?>
-					<option value="<?php echo $term->term_id; ?>" <?php echo ( in_array( $term->term_id, (array) $instance['exclude'] ) ? 'selected="selected"' : '' ); ?>><?php echo $term->name; ?></option>
+					<option value="<?php echo esc_attr( $term->term_id ); ?>" <?php echo ( in_array( $term->term_id, (array) $instance['exclude'] ) ? 'selected="selected"' : '' ); ?>><?php echo esc_html( $term->name ); ?></option>
 				<?php } ?>
 			</select>
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'exclude_tree' ); ?>"><code>exclude_tree</code></label>
-			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'exclude_tree' ); ?>" name="<?php echo $this->get_field_name( 'exclude_tree' ); ?>" value="<?php echo $instance['exclude_tree']; ?>" />
+			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'exclude_tree' ); ?>" name="<?php echo $this->get_field_name( 'exclude_tree' ); ?>" value="<?php echo esc_attr( $instance['exclude_tree'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'child_of' ); ?>"><code>child_of</code></label>
-			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'child_of' ); ?>" name="<?php echo $this->get_field_name( 'child_of' ); ?>" value="<?php echo $instance['child_of']; ?>" />
+			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'child_of' ); ?>" name="<?php echo $this->get_field_name( 'child_of' ); ?>" value="<?php echo esc_attr( $instance['child_of'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'current_category' ); ?>"><code>current_category</code></label>
-			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'current_category' ); ?>" name="<?php echo $this->get_field_name( 'current_category' ); ?>" value="<?php echo $instance['current_category']; ?>" />
+			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'current_category' ); ?>" name="<?php echo $this->get_field_name( 'current_category' ); ?>" value="<?php echo esc_attr( $instance['current_category'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'search' ); ?>"><code>search</code></label>
-			<input type="text" class="widefat code" id="<?php echo $this->get_field_id( 'search' ); ?>" name="<?php echo $this->get_field_name( 'search' ); ?>" value="<?php echo $instance['search']; ?>" />
+			<input type="text" class="widefat code" id="<?php echo $this->get_field_id( 'search' ); ?>" name="<?php echo $this->get_field_name( 'search' ); ?>" value="<?php echo esc_attr( $instance['search'] ); ?>" />
 		</p>
 		</div>
 
 		<div class="hybrid-widget-controls columns-3 column-last">
 		<p>
 			<label for="<?php echo $this->get_field_id( 'feed' ); ?>"><code>feed</code></label>
-			<input type="text" class="widefat code" id="<?php echo $this->get_field_id( 'feed' ); ?>" name="<?php echo $this->get_field_name( 'feed' ); ?>" value="<?php echo $instance['feed']; ?>" />
+			<input type="text" class="widefat code" id="<?php echo $this->get_field_id( 'feed' ); ?>" name="<?php echo $this->get_field_name( 'feed' ); ?>" value="<?php echo esc_attr( $instance['feed'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'feed_type' ); ?>"><code>feed_type</code></label> 
 			<select class="widefat" id="<?php echo $this->get_field_id( 'feed_type' ); ?>" name="<?php echo $this->get_field_name( 'feed_type' ); ?>">
 				<?php foreach ( $feed_type as $option_value => $option_label ) { ?>
-					<option value="<?php echo $option_value; ?>" <?php selected( $instance['feed_type'], $option_value ); ?>><?php echo $option_label; ?></option>
+					<option value="<?php echo esc_attr( $option_value ); ?>" <?php selected( $instance['feed_type'], $option_value ); ?>><?php echo esc_html( $option_label ); ?></option>
 				<?php } ?>
 			</select>
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'feed_image' ); ?>"><code>feed_image</code></label>
-			<input type="text" class="widefat code" id="<?php echo $this->get_field_id( 'feed_image' ); ?>" name="<?php echo $this->get_field_name( 'feed_image' ); ?>" value="<?php echo $instance['feed_image']; ?>" />
+			<input type="text" class="widefat code" id="<?php echo $this->get_field_id( 'feed_image' ); ?>" name="<?php echo $this->get_field_name( 'feed_image' ); ?>" value="<?php echo esc_attr( $instance['feed_image'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'hierarchical' ); ?>">
diff --git a/wp-content/themes/hybrid/library/classes/widget-nav-menu.php b/wp-content/themes/hybrid/library/classes/widget-nav-menu.php
index 6782e0b87..82ca3cd06 100644
--- a/wp-content/themes/hybrid/library/classes/widget-nav-menu.php
+++ b/wp-content/themes/hybrid/library/classes/widget-nav-menu.php
@@ -1,73 +1,108 @@
 <?php
 /**
- * Nav Menu Widget Class
- *
  * The nav menu widget was created to give users the ability to show nav menus created from the 
  * Menus screen, by the theme, or by plugins using the wp_nav_menu() function.  It replaces the default
  * WordPress navigation menu class.
  *
- * @since 0.8
- * @link http://themehybrid.com/themes/hybrid/widgets
- *
  * @package Hybrid
  * @subpackage Classes
  */
 
+/**
+ * Nav Menu Widget Class
+ *
+ * @since 0.8.0
+ * @link http://themehybrid.com/themes/hybrid/widgets
+ */
 class Hybrid_Widget_Nav_Menu extends WP_Widget {
 
+	/**
+	 * Prefix for the widget.
+	 * @since 0.8.0
+	 */
 	var $prefix;
+
+	/**
+	 * Textdomain for the widget.
+	 * @since 0.8.0
+	 */
 	var $textdomain;
 
 	/**
 	 * Set up the widget's unique name, ID, class, description, and other options.
-	 * @since 0.6
+	 * @since 1.2.0
 	 */
-	function Hybrid_Widget_Nav_Menu() {
+	function __construct() {
+
+		/* Set the widget prefix. */
 		$this->prefix = hybrid_get_prefix();
+
+		/* Set the widget textdomain. */
 		$this->textdomain = hybrid_get_textdomain();
 
-		$widget_ops = array( 'classname' => 'nav-menu', 'description' => __( 'An advanced widget that gives you total control over the output of your menus.', $this->textdomain ) );
-		$control_ops = array( 'width' => 525, 'height' => 350, 'id_base' => "{$this->prefix}-nav-menu" );
-		$this->WP_Widget( "{$this->prefix}-nav-menu", __( 'Navigation Menu', $this->textdomain ), $widget_ops, $control_ops );
+		/* Set up the widget options. */
+		$widget_options = array(
+			'classname' => 'nav-menu',
+			'description' => esc_html__( 'An advanced widget that gives you total control over the output of your menus.', $this->textdomain )
+		);
+
+		/* Set up the widget control options. */
+		$control_options = array(
+			'width' => 525,
+			'height' => 350
+		);
+
+		/* Create the widget. */
+		$this->WP_Widget(
+			'hybrid-nav-menu',				// $this->id_base
+			__( 'Navigation Menu', $this->textdomain ),	// $this->name
+			$widget_options,				// $this->widget_options
+			$control_options				// $this->control_options
+		);
 	}
 
 	/**
 	 * Outputs the widget based on the arguments input through the widget controls.
-	 * @since 0.6
+	 * @since 0.8.0
 	 */
 	function widget( $args, $instance ) {
 		extract( $args );
 
-		$args = array();
-
-		$args['menu'] = $instance['menu'];
-		$args['container'] = $instance['container'];
-		$args['container_id'] = $instance['container_id'];
-		$args['container_class'] = $instance['container_class'];
-		$args['menu_id'] = $instance['menu_id'];
-		$args['menu_class'] = $instance['menu_class'];
-		$args['link_before'] = $instance['link_before'];
-		$args['link_after'] = $instance['link_after'];
-		$args['before'] = $instance['before'];
-		$args['after'] = $instance['after'];
-		$args['depth'] = intval( $instance['depth'] );
-		$args['fallback_cb'] = $instance['fallback_cb'];
-		$args['walker'] = $instance['walker'];
-		$args['echo'] = false;
+		/* Set up the arguments for the wp_nav_menu() function. */
+		$args = array(
+			'menu' => 		$instance['menu'],
+			'container' => 		$instance['container'],
+			'container_id' => 		$instance['container_id'],
+			'container_class' => 	$instance['container_class'],
+			'menu_id' => 		$instance['menu_id'],
+			'menu_class' => 		$instance['menu_class'],
+			'link_before' => 		$instance['link_before'],
+			'link_after' => 		$instance['link_after'],
+			'before' => 		$instance['before'],
+			'after' => 		$instance['after'],
+			'depth' => 		intval( $instance['depth'] ),
+			'fallback_cb' => 		$instance['fallback_cb'],
+			'walker' => 		$instance['walker'],
+			'echo' => 		false
+		);
 
+		/* Output the theme's widget wrapper. */
 		echo $before_widget;
 
-		if ( $instance['title'] )
+		/* If a title was input by the user, display it. */
+		if ( !empty( $instance['title'] ) )
 			echo $before_title . apply_filters( 'widget_title',  $instance['title'], $instance, $this->id_base ) . $after_title;
 
+		/* Output the nav menu. */
 		echo str_replace( array( "\r", "\n", "\t" ), '', wp_nav_menu( $args ) );
 
+		/* Close the theme's widget wrapper. */
 		echo $after_widget;
 	}
 
 	/**
 	 * Updates the widget control options for the particular instance of the widget.
-	 * @since 0.6
+	 * @since 0.8.0
 	 */
 	function update( $new_instance, $old_instance ) {
 		$instance = $old_instance;
@@ -88,22 +123,29 @@ class Hybrid_Widget_Nav_Menu extends WP_Widget {
 
 	/**
 	 * Displays the widget control options in the Widgets admin screen.
-	 * @since 0.6
+	 * @since 0.8.0
 	 */
 	function form( $instance ) {
 
-		//Defaults
+		/* Set up the default form values. */
 		$defaults = array(
-			'title' => __( 'Navigation', $this->textdomain ),
-			'format' => 'div',
+			'title' => esc_attr__( 'Navigation', $this->textdomain ),
+			'menu' => '',
+			'container' => 'div',
+			'container_id' => '',
+			'container_class' => '',
+			'menu_id' => '',
 			'menu_class' => 'nav-menu',
 			'depth' => 0,
 			'before' => '',
 			'after' => '',
 			'link_before' => '',
 			'link_after' => '',
-			'fallback_cb' => 'wp_page_menu'
+			'fallback_cb' => 'wp_page_menu',
+			'walker' => ''
 		);
+
+		/* Merge the user-selected arguments with the defaults. */
 		$instance = wp_parse_args( (array) $instance, $defaults );
 
 		$container = apply_filters( 'wp_nav_menu_container_allowedtags', array( 'div', 'nav' ) );
@@ -112,13 +154,13 @@ class Hybrid_Widget_Nav_Menu extends WP_Widget {
 		<div class="hybrid-widget-controls columns-2">
 		<p>
 			<label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:', $this->textdomain ); ?></label>
-			<input type="text" class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo $instance['title']; ?>" />
+			<input type="text" class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo esc_attr( $instance['title'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'menu' ); ?>"><code>menu</code></label> 
 			<select class="widefat" id="<?php echo $this->get_field_id( 'menu' ); ?>" name="<?php echo $this->get_field_name( 'menu' ); ?>">
 				<?php foreach ( wp_get_nav_menus() as $menu ) { ?>
-					<option value="<?php echo $menu->term_id; ?>" <?php selected( $instance['menu'], $menu->term_id ); ?>><?php echo $menu->name; ?></option>
+					<option value="<?php echo esc_attr( $menu->term_id ); ?>" <?php selected( $instance['menu'], $menu->term_id ); ?>><?php echo esc_html( $menu->name ); ?></option>
 				<?php } ?>
 			</select>
 		</p>
@@ -126,56 +168,56 @@ class Hybrid_Widget_Nav_Menu extends WP_Widget {
 			<label for="<?php echo $this->get_field_id( 'container' ); ?>"><code>container</code></label> 
 			<select class="smallfat" id="<?php echo $this->get_field_id( 'container' ); ?>" name="<?php echo $this->get_field_name( 'container' ); ?>">
 				<?php foreach ( $container as $option ) { ?>
-					<option value="<?php echo $option; ?>" <?php selected( $instance['container'], $option ); ?>><?php echo $option; ?></option>
+					<option value="<?php echo esc_attr( $option ); ?>" <?php selected( $instance['container'], $option ); ?>><?php echo esc_html( $option ); ?></option>
 				<?php } ?>
 			</select>
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'container_id' ); ?>"><code>container_id</code></label>
-			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'container_id' ); ?>" name="<?php echo $this->get_field_name( 'container_id' ); ?>" value="<?php echo $instance['container_id']; ?>" />
+			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'container_id' ); ?>" name="<?php echo $this->get_field_name( 'container_id' ); ?>" value="<?php echo esc_attr( $instance['container_id'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'container_class' ); ?>"><code>container_class</code></label>
-			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'container_class' ); ?>" name="<?php echo $this->get_field_name( 'container_class' ); ?>" value="<?php echo $instance['container_class']; ?>" />
+			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'container_class' ); ?>" name="<?php echo $this->get_field_name( 'container_class' ); ?>" value="<?php echo esc_attr( $instance['container_class'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'menu_id' ); ?>"><code>menu_id</code></label>
-			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'menu_id' ); ?>" name="<?php echo $this->get_field_name( 'menu_id' ); ?>" value="<?php echo $instance['menu_id']; ?>" />
+			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'menu_id' ); ?>" name="<?php echo $this->get_field_name( 'menu_id' ); ?>" value="<?php echo esc_attr( $instance['menu_id'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'menu_class' ); ?>"><code>menu_class</code></label>
-			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'menu_class' ); ?>" name="<?php echo $this->get_field_name( 'menu_class' ); ?>" value="<?php echo $instance['menu_class']; ?>" />
+			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'menu_class' ); ?>" name="<?php echo $this->get_field_name( 'menu_class' ); ?>" value="<?php echo esc_attr( $instance['menu_class'] ); ?>" />
 		</p>
 		</div>
 
 		<div class="hybrid-widget-controls columns-2 column-last">
 		<p>
 			<label for="<?php echo $this->get_field_id( 'depth' ); ?>"><code>depth</code></label>
-			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'depth' ); ?>" name="<?php echo $this->get_field_name( 'depth' ); ?>" value="<?php echo $instance['depth']; ?>" />
+			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'depth' ); ?>" name="<?php echo $this->get_field_name( 'depth' ); ?>" value="<?php echo esc_attr( $instance['depth'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'before' ); ?>"><code>before</code></label>
-			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'before' ); ?>" name="<?php echo $this->get_field_name( 'before' ); ?>" value="<?php echo $instance['before']; ?>" />
+			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'before' ); ?>" name="<?php echo $this->get_field_name( 'before' ); ?>" value="<?php echo esc_attr( $instance['before'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'after' ); ?>"><code>after</code></label>
-			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'after' ); ?>" name="<?php echo $this->get_field_name( 'after' ); ?>" value="<?php echo $instance['after']; ?>" />
+			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'after' ); ?>" name="<?php echo $this->get_field_name( 'after' ); ?>" value="<?php echo esc_attr( $instance['after'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'link_before' ); ?>"><code>link_before</code></label>
-			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'link_before' ); ?>" name="<?php echo $this->get_field_name( 'link_before' ); ?>" value="<?php echo $instance['link_before']; ?>" />
+			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'link_before' ); ?>" name="<?php echo $this->get_field_name( 'link_before' ); ?>" value="<?php echo esc_attr( $instance['link_before'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'link_after' ); ?>"><code>link_after</code></label>
-			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'link_after' ); ?>" name="<?php echo $this->get_field_name( 'link_after' ); ?>" value="<?php echo $instance['link_after']; ?>" />
+			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'link_after' ); ?>" name="<?php echo $this->get_field_name( 'link_after' ); ?>" value="<?php echo esc_attr( $instance['link_after'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'fallback_cb' ); ?>"><code>fallback_cb</code></label>
-			<input type="text" class="widefat code" id="<?php echo $this->get_field_id( 'fallback_cb' ); ?>" name="<?php echo $this->get_field_name( 'fallback_cb' ); ?>" value="<?php echo $instance['fallback_cb']; ?>" />
+			<input type="text" class="widefat code" id="<?php echo $this->get_field_id( 'fallback_cb' ); ?>" name="<?php echo $this->get_field_name( 'fallback_cb' ); ?>" value="<?php echo esc_attr( $instance['fallback_cb'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'walker' ); ?>"><code>walker</code></label>
-			<input type="text" class="widefat code" id="<?php echo $this->get_field_id( 'walker' ); ?>" name="<?php echo $this->get_field_name( 'walker' ); ?>" value="<?php echo $instance['walker']; ?>" />
+			<input type="text" class="widefat code" id="<?php echo $this->get_field_id( 'walker' ); ?>" name="<?php echo $this->get_field_name( 'walker' ); ?>" value="<?php echo esc_attr( $instance['walker'] ); ?>" />
 		</p>
 		</div>
 		<div style="clear:both;">&nbsp;</div>
diff --git a/wp-content/themes/hybrid/library/classes/widget-pages.php b/wp-content/themes/hybrid/library/classes/widget-pages.php
index 0d8fd5dd7..44f127e90 100644
--- a/wp-content/themes/hybrid/library/classes/widget-pages.php
+++ b/wp-content/themes/hybrid/library/classes/widget-pages.php
@@ -1,67 +1,96 @@
 <?php
 /**
- * Pages Widget
- *
- * Replaces the default WordPress Pages widget.
- * @link http://themehybrid.com/themes/hybrid/widgets
- *
- * In 0.6, converted functions to a class that extends WP 2.8's widget class.
+ * The Pages widget replaces the default WordPress Pages widget. This version gives total
+ * control over the output to the user by allowing the input of all the arguments typically seen
+ * in the wp_list_pages() function.
  *
  * @package Hybrid
  * @subpackage Widgets
  */
 
 /**
- * Output of the Pages widget.
- * Arguments are parameters of the wp_list_pages() function.
- * @link http://codex.wordpress.org/Template_Tags/wp_list_pages
+ * Pages Widget Class
  *
- * @since 0.6
+ * @since 0.6.0
+ * @link http://codex.wordpress.org/Template_Tags/wp_list_pages
+ * @link http://themehybrid.com/themes/hybrid/widgets
  */
 class Hybrid_Widget_Pages extends WP_Widget {
 
+	/**
+	 * Prefix for the widget.
+	 * @since 0.7.0
+	 */
 	var $prefix;
-	var $textdomain;
 
-	function Hybrid_Widget_Pages() {
+	/**
+	 * Set up the widget's unique name, ID, class, description, and other options.
+	 * @since 1.2.0
+	 */
+	function __construct() {
+
+		/* Set the widget prefix. */
 		$this->prefix = hybrid_get_prefix();
+
+		/* Set the widget textdomain. */
 		$this->textdomain = hybrid_get_textdomain();
 
-		$widget_ops = array( 'classname' => 'pages', 'description' => __( 'An advanced widget that gives you total control over the output of your page links.', $this->textdomain) );
-		$control_ops = array( 'width' => 800, 'height' => 350, 'id_base' => "{$this->prefix}-pages" );
-		$this->WP_Widget( "{$this->prefix}-pages", __( 'Pages', $this->textdomain), $widget_ops, $control_ops );
+		/* Set up the widget options. */
+		$widget_options = array(
+			'classname' => 'pages',
+			'description' => esc_html__( 'An advanced widget that gives you total control over the output of your page links.', $this->textdomain )
+		);
+
+		/* Set up the widget control options. */
+		$control_options = array(
+			'width' => 800,
+			'height' => 350
+		);
+
+		/* Create the widget. */
+		$this->WP_Widget(
+			'hybrid-pages',			// $this->id_base
+			__( 'Pages', $this->textdomain),	// $this->name
+			$widget_options,			// $this->widget_options
+			$control_options			// $this->control_options
+		);
 	}
 
+	/**
+	 * Outputs the widget based on the arguments input through the widget controls.
+	 * @since 0.6.0
+	 */
 	function widget( $args, $instance ) {
 		extract( $args );
 
-		$args = array();
-
-		$args['sort_column'] = $instance['sort_column'];
-		$args['sort_order'] = $instance['sort_order'];
-		$args['depth'] = intval( $instance['depth'] );
-		$args['child_of'] = intval( $instance['child_of'] );
-		$args['meta_key'] = $instance['meta_key'];
-		$args['meta_value'] = $instance['meta_value'];
-		$args['authors'] = ( is_array( $instance['authors'] ) ? join( ', ', $instance['authors'] ) : $instance['authors'] );
-		$args['include'] = ( is_array( $instance['include'] ) ? join( ', ', $instance['include'] ) : $instance['include'] );
-		$args['exclude'] = ( is_array( $instance['exclude'] ) ? join( ', ', $instance['exclude'] ) : $instance['exclude'] );
-		$args['exclude_tree'] = $instance['exclude_tree'];
-		$args['link_before'] = $instance['link_before'];
-		$args['link_after'] = $instance['link_after'];
-		$args['date_format'] = $instance['date_format'];
-		$args['show_date'] = $instance['show_date'];
-		$args['number'] = intval( $instance['number'] );
-		$args['offset'] = intval( $instance['offset'] );
-		$args['hierarchical'] = isset( $instance['hierarchical'] ) ? $instance['hierarchical'] : false;
-		$args['title_li'] = false;
-		$args['echo'] = false;
+		/* Set up the arguments for the wp_list_pages() function. */
+		$args = array(
+			'sort_column' => 		$instance['sort_column'],
+			'sort_order' =>		$instance['sort_order'],
+			'depth' =>		intval( $instance['depth'] ),
+			'child_of' =>		intval( $instance['child_of'] ),
+			'meta_key' =>		$instance['meta_key'],
+			'meta_value' =>		$instance['meta_value'],
+			'authors' =>		!empty( $instance['authors'] ) ? join( ', ', $instance['authors'] ) : '',
+			'include' =>		!empty( $instance['include'] ) ? join( ', ', $instance['include'] ) : '',
+			'exclude' =>		!empty( $instance['exclude'] ) ? join( ', ', $instance['exclude'] ) : '',
+			'exclude_tree' =>		$instance['exclude_tree'],
+			'link_before' =>		$instance['link_before'],
+			'link_after' =>		$instance['link_after'],
+			'date_format' =>		$instance['date_format'],
+			'show_date' =>		$instance['show_date'],
+			'number' =>		intval( $instance['number'] ),
+			'offset' =>		intval( $instance['offset'] ),
+			'hierarchical' =>		!empty( $instance['hierarchical'] ) ? true : false,
+			'title_li' =>		false,
+			'echo' =>			false
+		);
 
 		/* Open the output of the widget. */
 		echo $before_widget;
 
-		/* If there is a title given, add it along with the $before_title and $after_title variables. */
-		if ( $instance['title'] )
+		/* If a title was input by the user, display it. */
+		if ( !empty( $instance['title'] ) )
 			echo $before_title . apply_filters( 'widget_title',  $instance['title'], $instance, $this->id_base ) . $after_title;
 
 		/* Output the page list. */
@@ -71,6 +100,10 @@ class Hybrid_Widget_Pages extends WP_Widget {
 		echo $after_widget;
 	}
 
+	/**
+	 * Updates the widget control options for the particular instance of the widget.
+	 * @since 0.6.0
+	 */
 	function update( $new_instance, $old_instance ) {
 		$instance = $old_instance;
 
@@ -97,16 +130,35 @@ class Hybrid_Widget_Pages extends WP_Widget {
 		return $instance;
 	}
 
+	/**
+	 * Displays the widget control options in the Widgets admin screen.
+	 * @since 0.6.0
+	 */
 	function form( $instance ) {
 
-		//Defaults
+		/* Set up the default form values. */
 		$defaults = array(
-			'title' => __( 'Pages', $this->textdomain),
+			'title' => esc_attr__( 'Pages', $this->textdomain),
+			'depth' => 0,
+			'number' => '',
+			'offset' => '',
+			'child_of' => '',
+			'include' => array(),
+			'exclude' => array(),
+			'exclude_tree' => '',
+			'meta_key' => '',
+			'meta_value' => '',
+			'authors' => array(),
+			'link_before' => '',
+			'link_after' => '',
+			'show_date' => '',
 			'hierarchical' => true,
 			'sort_column' => 'post_title',
 			'sort_order' => 'ASC',
 			'date_format' => get_option( 'date_format' )
 		);
+
+		/* Merge the user-selected arguments with the defaults. */
 		$instance = wp_parse_args( (array) $instance, $defaults );
 
 		$posts = get_posts( array( 'post_type' => 'page', 'post_status' => 'any', 'post_mime_type' => '', 'orderby' => 'title', 'order' => 'ASC', 'numberposts' => -1 ) );
@@ -114,22 +166,23 @@ class Hybrid_Widget_Pages extends WP_Widget {
 		foreach ( $posts as $post )
 			$authors[$post->post_author] = get_the_author_meta( 'display_name', $post->post_author );
 
-		$sort_order = array( 'ASC' => __( 'Ascending', $this->textdomain ), 'DESC' => __( 'Descending', $this->textdomain ) );
-		$sort_column = array( 'post_author' => __( 'Author', $this->textdomain ), 'post_date' => __( 'Date', $this->textdomain ), 'ID' => __( 'ID', $this->textdomain ), 'menu_order' => __( 'Menu Order', $this->textdomain ), 'post_modified' => __( 'Modified', $this->textdomain ), 'post_name' => __( 'Slug', $this->textdomain ), 'post_title' => __( 'Title', $this->textdomain ) );
-		$show_date = array( '' => '', 'created' => __( 'Created', $this->textdomain ), 'modified' => __( 'Modified', $this->textdomain ) );
+		$sort_order = array( 'ASC' => esc_attr__( 'Ascending', $this->textdomain ), 'DESC' => esc_attr__( 'Descending', $this->textdomain ) );
+		$sort_column = array( 'post_author' => esc_attr__( 'Author', $this->textdomain ), 'post_date' => esc_attr__( 'Date', $this->textdomain ), 'ID' => esc_attr__( 'ID', $this->textdomain ), 'menu_order' => esc_attr__( 'Menu Order', $this->textdomain ), 'post_modified' => esc_attr__( 'Modified', $this->textdomain ), 'post_name' => esc_attr__( 'Slug', $this->textdomain ), 'post_title' => esc_attr__( 'Title', $this->textdomain ) );
+		$show_date = array( '' => '', 'created' => esc_attr__( 'Created', $this->textdomain ), 'modified' => esc_attr__( 'Modified', $this->textdomain ) );
 		$meta_key = array_merge( array( '' ), (array) get_meta_keys() );
+
 		?>
 
 		<div class="hybrid-widget-controls columns-3">
 		<p>
 			<label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:', $this->textdomain ); ?></label>
-			<input type="text" class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo $instance['title']; ?>" />
+			<input type="text" class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo esc_attr( $instance['title'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'sort_order' ); ?>"><code>sort_order</code></label> 
 			<select class="widefat" id="<?php echo $this->get_field_id( 'sort_order' ); ?>" name="<?php echo $this->get_field_name( 'sort_order' ); ?>">
 				<?php foreach ( $sort_order as $option_value => $option_label ) { ?>
-					<option value="<?php echo $option_value; ?>" <?php selected( $instance['sort_order'], $option_value ); ?>><?php echo $option_label; ?></option>
+					<option value="<?php echo esc_attr( $option_value ); ?>" <?php selected( $instance['sort_order'], $option_value ); ?>><?php echo esc_html( $option_label ); ?></option>
 				<?php } ?>
 			</select>
 		</p>
@@ -137,35 +190,34 @@ class Hybrid_Widget_Pages extends WP_Widget {
 			<label for="<?php echo $this->get_field_id( 'sort_column' ); ?>"><code>sort_column</code></label> 
 			<select class="widefat" id="<?php echo $this->get_field_id( 'sort_column' ); ?>" name="<?php echo $this->get_field_name( 'sort_column' ); ?>">
 				<?php foreach ( $sort_column as $option_value => $option_label ) { ?>
-					<option value="<?php echo $option_value; ?>" <?php selected( $instance['sort_column'], $option_value ); ?>><?php echo $option_label; ?></option>
+					<option value="<?php echo esc_attr( $option_value ); ?>" <?php selected( $instance['sort_column'], $option_value ); ?>><?php echo esc_html( $option_label ); ?></option>
 				<?php } ?>
 			</select>
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'depth' ); ?>"><code>depth</code></label>
-			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'depth' ); ?>" name="<?php echo $this->get_field_name( 'depth' ); ?>" value="<?php echo $instance['depth']; ?>" />
+			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'depth' ); ?>" name="<?php echo $this->get_field_name( 'depth' ); ?>" value="<?php echo esc_attr( $instance['depth'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'number' ); ?>"><code>number</code></label>
-			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'number' ); ?>" name="<?php echo $this->get_field_name( 'number' ); ?>" value="<?php echo $instance['number']; ?>" />
+			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'number' ); ?>" name="<?php echo $this->get_field_name( 'number' ); ?>" value="<?php echo esc_attr( $instance['number'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'offset' ); ?>"><code>offset</code></label>
-			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'offset' ); ?>" name="<?php echo $this->get_field_name( 'offset' ); ?>" value="<?php echo $instance['offset']; ?>"  />
+			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'offset' ); ?>" name="<?php echo $this->get_field_name( 'offset' ); ?>" value="<?php echo esc_attr( $instance['offset'] ); ?>"  />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'child_of' ); ?>"><code>child_of</code></label>
-			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'child_of' ); ?>" name="<?php echo $this->get_field_name( 'child_of' ); ?>" value="<?php echo $instance['child_of']; ?>" />
+			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'child_of' ); ?>" name="<?php echo $this->get_field_name( 'child_of' ); ?>" value="<?php echo esc_attr( $instance['child_of'] ); ?>" />
 		</p>
 		</div>
 
 		<div class="hybrid-widget-controls columns-3">
-
 		<p>
 			<label for="<?php echo $this->get_field_id( 'include' ); ?>"><code>include</code></label> 
 			<select class="widefat" id="<?php echo $this->get_field_id( 'include' ); ?>" name="<?php echo $this->get_field_name( 'include' ); ?>[]" size="4" multiple="multiple">
 				<?php foreach ( $posts as $post ) { ?>
-					<option value="<?php echo $post->ID; ?>" <?php echo ( in_array( $post->ID, (array) $instance['include'] ) ? 'selected="selected"' : '' ); ?>><?php echo esc_attr( $post->post_title ); ?></option>
+					<option value="<?php echo esc_attr( $post->ID ); ?>" <?php echo ( in_array( $post->ID, (array) $instance['include'] ) ? 'selected="selected"' : '' ); ?>><?php echo esc_html( $post->post_title ); ?></option>
 				<?php } ?>
 			</select>
 		</p>
@@ -173,57 +225,56 @@ class Hybrid_Widget_Pages extends WP_Widget {
 			<label for="<?php echo $this->get_field_id( 'exclude' ); ?>"><code>exclude</code></label> 
 			<select class="widefat" id="<?php echo $this->get_field_id( 'exclude' ); ?>" name="<?php echo $this->get_field_name( 'exclude' ); ?>[]" size="4" multiple="multiple">
 				<?php foreach ( $posts as $post ) { ?>
-					<option value="<?php echo $post->ID; ?>" <?php echo ( in_array( $post->ID, (array) $instance['exclude'] ) ? 'selected="selected"' : '' ); ?>><?php echo esc_attr( $post->post_title ); ?></option>
+					<option value="<?php echo esc_attr( $post->ID ); ?>" <?php echo ( in_array( $post->ID, (array) $instance['exclude'] ) ? 'selected="selected"' : '' ); ?>><?php echo esc_html( $post->post_title ); ?></option>
 				<?php } ?>
 			</select>
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'exclude_tree' ); ?>"><code>exclude_tree</code></label>
-			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'exclude_tree' ); ?>" name="<?php echo $this->get_field_name( 'exclude_tree' ); ?>" value="<?php echo $instance['exclude_tree']; ?>" />
+			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'exclude_tree' ); ?>" name="<?php echo $this->get_field_name( 'exclude_tree' ); ?>" value="<?php echo esc_attr( $instance['exclude_tree'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'meta_key' ); ?>"><code>meta_key</code></label> 
 			<select class="widefat" id="<?php echo $this->get_field_id( 'meta_key' ); ?>" name="<?php echo $this->get_field_name( 'meta_key' ); ?>">
 				<?php foreach ( $meta_key as $meta ) { ?>
-					<option value="<?php echo $meta; ?>" <?php selected( $instance['meta_key'], $meta ); ?>><?php echo $meta; ?></option>
+					<option value="<?php echo esc_attr( $meta ); ?>" <?php selected( $instance['meta_key'], $meta ); ?>><?php echo esc_html( $meta ); ?></option>
 				<?php } ?>
 			</select>
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'meta_value' ); ?>"><code>meta_value</code></label>
-			<input type="text" class="widefat code" id="<?php echo $this->get_field_id( 'meta_value' ); ?>" name="<?php echo $this->get_field_name( 'meta_value' ); ?>" value="<?php echo $instance['meta_value']; ?>" />
+			<input type="text" class="widefat code" id="<?php echo $this->get_field_id( 'meta_value' ); ?>" name="<?php echo $this->get_field_name( 'meta_value' ); ?>" value="<?php echo esc_attr( $instance['meta_value'] ); ?>" />
 		</p>
 		</div>
 
 		<div class="hybrid-widget-controls columns-3 column-last">
-
 		<p>
 			<label for="<?php echo $this->get_field_id( 'authors' ); ?>"><code>authors</code></label> 
 			<select class="widefat" id="<?php echo $this->get_field_id( 'authors' ); ?>" name="<?php echo $this->get_field_name( 'authors' ); ?>[]" size="4" multiple="multiple">
 				<?php foreach ( $authors as $option_value => $option_label ) { ?>
-					<option value="<?php echo $option_value; ?>" <?php echo ( in_array( $option_value, (array) $instance['authors'] ) ? 'selected="selected"' : '' ); ?>><?php echo $option_label; ?></option>
+					<option value="<?php echo esc_attr( $option_value ); ?>" <?php echo ( in_array( $option_value, (array) $instance['authors'] ) ? 'selected="selected"' : '' ); ?>><?php echo esc_html( $option_label ); ?></option>
 				<?php } ?>
 			</select>
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'link_before' ); ?>"><code>link_before</code></label>
-			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'link_before' ); ?>" name="<?php echo $this->get_field_name( 'link_before' ); ?>" value="<?php echo $instance['link_before']; ?>" />
+			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'link_before' ); ?>" name="<?php echo $this->get_field_name( 'link_before' ); ?>" value="<?php echo esc_attr( $instance['link_before'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'link_after' ); ?>"><code>link_after</code></label>
-			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'link_after' ); ?>" name="<?php echo $this->get_field_name( 'link_after' ); ?>" value="<?php echo $instance['link_after']; ?>" />
+			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'link_after' ); ?>" name="<?php echo $this->get_field_name( 'link_after' ); ?>" value="<?php echo esc_attr( $instance['link_after'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'show_date' ); ?>"><code>show_date</code></label> 
 			<select class="widefat" id="<?php echo $this->get_field_id( 'show_date' ); ?>" name="<?php echo $this->get_field_name( 'show_date' ); ?>">
 				<?php foreach ( $show_date as $option_value => $option_label ) { ?>
-					<option value="<?php echo $option_value; ?>" <?php selected( $instance['show_date'], $option_value ); ?>><?php echo $option_label; ?></option>
+					<option value="<?php echo esc_attr( $option_value ); ?>" <?php selected( $instance['show_date'], $option_value ); ?>><?php echo esc_html( $option_label ); ?></option>
 				<?php } ?>
 			</select>
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'date_format' ); ?>"><code>date_format</code></label>
-			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'date_format' ); ?>" name="<?php echo $this->get_field_name( 'date_format' ); ?>" value="<?php echo $instance['date_format']; ?>" />
+			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'date_format' ); ?>" name="<?php echo $this->get_field_name( 'date_format' ); ?>" value="<?php echo esc_attr( $instance['date_format'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'hierarchical' ); ?>">
diff --git a/wp-content/themes/hybrid/library/classes/widget-search.php b/wp-content/themes/hybrid/library/classes/widget-search.php
index 16a6d470a..85c4f32d9 100644
--- a/wp-content/themes/hybrid/library/classes/widget-search.php
+++ b/wp-content/themes/hybrid/library/classes/widget-search.php
@@ -1,35 +1,65 @@
 <?php
 /**
- * Search Widget Class
- *
  * The Search widget replaces the default WordPress Search widget. This version gives total
  * control over the output to the user by allowing the input of various arguments that typically
  * represent a search form. It also gives the user the option of using the theme's search form
  * through the use of the get_search_form() function.
  *
- * @since 0.6
- * @link http://themehybrid.com/themes/hybrid/widgets
- *
  * @package Hybrid
  * @subpackage Classes
  */
 
+/**
+ * Search Widget Class
+ *
+ * @since 0.6.0
+ * @link http://themehybrid.com/themes/hybrid/widgets
+ */
 class Hybrid_Widget_Search extends WP_Widget {
 
+	/**
+	 * Prefix for the widget.
+	 * @since 0.7.0
+	 */
 	var $prefix;
+
+	/**
+	 * Textdomain for the widget.
+	 * @since 0.7.0
+	 */
 	var $textdomain;
 
 	/**
 	 * Set up the widget's unique name, ID, class, description, and other options.
-	 * @since 0.6
+	 * @since 1.2.0
 	 */
-	function Hybrid_Widget_Search() {
+	function __construct() {
+
+		/* Set the widget prefix. */
 		$this->prefix = hybrid_get_prefix();
+
+		/* Set the widget textdomain. */
 		$this->textdomain = hybrid_get_textdomain();
 
-		$widget_ops = array( 'classname' => 'search', 'description' => __( 'An advanced widget that gives you total control over the output of your search form.', $this->textdomain ) );
-		$control_ops = array( 'width' => 525, 'height' => 350, 'id_base' => "{$this->prefix}-search" );
-		$this->WP_Widget( "{$this->prefix}-search", __( 'Search', $this->textdomain ), $widget_ops, $control_ops );
+		/* Set up the widget options. */
+		$widget_options = array(
+			'classname' => 'search',
+			'description' => esc_html__( 'An advanced widget that gives you total control over the output of your search form.', $this->textdomain )
+		);
+
+		/* Set up the widget control options. */
+		$control_options = array(
+			'width' => 525,
+			'height' => 350
+		);
+
+		/* Create the widget. */
+		$this->WP_Widget(
+			'hybrid-search',			// $this->id_base
+			__( 'Search', $this->textdomain ),	// $this->name
+			$widget_options,			// $this->widget_options
+			$control_options			// $this->control_options
+		);
 	}
 
 	/**
@@ -39,40 +69,50 @@ class Hybrid_Widget_Search extends WP_Widget {
 	function widget( $args, $instance ) {
 		extract( $args );
 
-		$theme_search = isset( $instance['theme_search'] ) ? $instance['theme_search'] : false;
-
+		/* Output the theme's $before_widget wrapper. */
 		echo $before_widget;
 
-		/* If there is a title given, add it along with the $before_title and $after_title variables. */
-		if ( $instance['title'] )
+		/* If a title was input by the user, display it. */
+		if ( !empty( $instance['title'] ) )
 			echo $before_title . apply_filters( 'widget_title',  $instance['title'], $instance, $this->id_base ) . $after_title;
 
-		if ( $theme_search )
+		/* If the user chose to use the theme's search form, load it. */
+		if ( !empty( $instance['theme_search'] ) ) {
 			get_search_form();
+		}
 
+		/* Else, create the form based on the user-selected arguments. */
 		else {
-			global $search_form_num;
 
-			$search_num = ( ( $search_form_num ) ? "-{$search_form_num}" : '' );
+			/* Set up some variables for the search form. */
+			global $search_form_num;
+			$search_num = ( ( $search_form_num ) ? '-' . esc_attr( $search_form_num ) : '' );
 			$search_text = ( ( is_search() ) ? esc_attr( get_search_query() ) : esc_attr( $instance['search_text'] ) );
 
+			/* Open the form. */
 			$search = '<form method="get" class="search-form" id="search-form' . $search_num . '" action="' . home_url() . '/"><div>';
 
-			if ( $instance['search_label'] )
+			/* If a search label was set, add it. */
+			if ( !empty( $instance['search_label'] ) )
 				$search .= '<label for="search-text' . $search_num . '">' . $instance['search_label'] . '</label>';
 
-			$search .= '<input class="search-text" type="text" name="s" id="search-text' . $search_num . '" value="' . esc_attr( $search_text ) . '" onfocus="if(this.value==this.defaultValue)this.value=\'\';" onblur="if(this.value==\'\')this.value=this.defaultValue;" />';
+			/* Search form text input. */
+			$search .= '<input class="search-text" type="text" name="s" id="search-text' . $search_num . '" value="' . $search_text . '" onfocus="if(this.value==this.defaultValue)this.value=\'\';" onblur="if(this.value==\'\')this.value=this.defaultValue;" />';
 
+			/* Search form submit button. */
 			if ( $instance['search_submit'] )
 				$search .= '<input class="search-submit button" name="submit" type="submit" id="search-submit' . $search_num . '" value="' . esc_attr( $instance['search_submit'] ) . '" />';
 
+			/* Close the form. */
 			$search .= '</div></form><!-- .search-form -->';
 
+			/* Display the form. */
 			echo $search;
 
 			$search_form_num++;
 		}
 
+		/* Close the theme's widget wrapper. */
 		echo $after_widget;
 	}
 
@@ -97,29 +137,37 @@ class Hybrid_Widget_Search extends WP_Widget {
 	 */
 	function form( $instance ) {
 
-		//Defaults
-		$defaults = array( 'title' => __( 'Search', $this->textdomain ), 'theme_search' => false );
+		/* Set up the default form values. */
+		$defaults = array(
+			'title' => esc_attr__( 'Search', $this->textdomain ),
+			'theme_search' => false,
+			'search_label' => '',
+			'search_text' => '',
+			'search_submit' => ''
+		);
+
+		/* Merge the user-selected arguments with the defaults. */
 		$instance = wp_parse_args( (array) $instance, $defaults ); ?>
 
 		<div class="hybrid-widget-controls columns-2">
 		<p>
 			<label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:', $this->textdomain ); ?></label>
-			<input type="text" class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo $instance['title']; ?>" />
+			<input type="text" class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo esc_attr( $instance['title'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'search_label' ); ?>"><?php _e( 'Search Label:', $this->textdomain ); ?></label>
-			<input type="text" class="widefat" id="<?php echo $this->get_field_id( 'search_label' ); ?>" name="<?php echo $this->get_field_name( 'search_label' ); ?>" value="<?php echo $instance['search_label']; ?>" />
+			<input type="text" class="widefat" id="<?php echo $this->get_field_id( 'search_label' ); ?>" name="<?php echo $this->get_field_name( 'search_label' ); ?>" value="<?php echo esc_attr( $instance['search_label'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'search_text' ); ?>"><?php _e( 'Search Text:', $this->textdomain ); ?></label>
-			<input type="text" class="widefat" id="<?php echo $this->get_field_id( 'search_text' ); ?>" name="<?php echo $this->get_field_name( 'search_text' ); ?>" value="<?php echo $instance['search_text']; ?>" />
+			<input type="text" class="widefat" id="<?php echo $this->get_field_id( 'search_text' ); ?>" name="<?php echo $this->get_field_name( 'search_text' ); ?>" value="<?php echo esc_attr( $instance['search_text'] ); ?>" />
 		</p>
 		</div>
 
 		<div class="hybrid-widget-controls columns-2 column-last">
 		<p>
 			<label for="<?php echo $this->get_field_id( 'search_submit' ); ?>"><?php _e( 'Search Submit:', $this->textdomain ); ?></label>
-			<input type="text" class="widefat" id="<?php echo $this->get_field_id( 'search_submit' ); ?>" name="<?php echo $this->get_field_name( 'search_submit' ); ?>" value="<?php echo $instance['search_submit']; ?>" />
+			<input type="text" class="widefat" id="<?php echo $this->get_field_id( 'search_submit' ); ?>" name="<?php echo $this->get_field_name( 'search_submit' ); ?>" value="<?php echo esc_attr( $instance['search_submit'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'theme_search' ); ?>">
diff --git a/wp-content/themes/hybrid/library/classes/widget-tags.php b/wp-content/themes/hybrid/library/classes/widget-tags.php
index 9bfdfa52b..444a410af 100644
--- a/wp-content/themes/hybrid/library/classes/widget-tags.php
+++ b/wp-content/themes/hybrid/library/classes/widget-tags.php
@@ -1,35 +1,65 @@
 <?php
 /**
- * Tags Widget Class
- *
  * The Tags widget replaces the default WordPress Tag Cloud widget. This version gives total
  * control over the output to the user by allowing the input of all the arguments typically seen
  * in the wp_tag_cloud() function.
  *
+ * @package Hybrid
+ * @subpackage Classes
+ */
+
+/**
+ * Tags Widget Class
+ *
  * @since 0.6
  * @link http://codex.wordpress.org/Template_Tags/wp_tag_cloud
  * @link http://themehybrid.com/themes/hybrid/widgets
- *
- * @package Hybrid
- * @subpackage Widgets
  */
-
 class Hybrid_Widget_Tags extends WP_Widget {
 
+	/**
+	 * Prefix for the widget.
+	 * @since 0.7.0
+	 */
 	var $prefix;
+
+	/**
+	 * Textdomain for the widget.
+	 * @since 0.7.0
+	 */
 	var $textdomain;
 
 	/**
 	 * Set up the widget's unique name, ID, class, description, and other options.
-	 * @since 0.6
+	 * @since 1.2.0
 	 */
-	function Hybrid_Widget_Tags() {
+	function __construct() {
+
+		/* Set the widget prefix. */
 		$this->prefix = hybrid_get_prefix();
+
+		/* Set the widget textdomain. */
 		$this->textdomain = hybrid_get_textdomain();
 
-		$widget_ops = array( 'classname' => 'tags', 'description' => __( 'An advanced widget that gives you total control over the output of your tags.',$this->textdomain ) );
-		$control_ops = array( 'width' => 800, 'height' => 350, 'id_base' => "{$this->prefix}-tags" );
-		$this->WP_Widget( "{$this->prefix}-tags", __( 'Tags', $this->textdomain ), $widget_ops, $control_ops );
+		/* Set up the widget options. */
+		$widget_options = array(
+			'classname' => 'tags',
+			'description' => esc_html__( 'An advanced widget that gives you total control over the output of your tags.', $this->textdomain )
+		);
+
+		/* Set up the widget control options. */
+		$control_options = array(
+			'width' => 800,
+			'height' => 350
+		);
+
+		/* Create the widget. */
+		$this->WP_Widget(
+			'hybrid-tags',			// $this->id_base
+			__( 'Tags', $this->textdomain ),	// $this->name
+			$widget_options,			// $this->widget_options
+			$control_options			// $this->control_options
+		);
 	}
 
 	/**
@@ -39,33 +69,34 @@ class Hybrid_Widget_Tags extends WP_Widget {
 	function widget( $args, $instance ) {
 		extract( $args );
 
-		$args = array();
-
-		$args['taxonomy'] = $instance['taxonomy'];
-		$args['largest'] = ( ( $instance['largest'] ) ? absint( $instance['largest'] ) : 22 );
-		$args['smallest'] = ( ( $instance['smallest'] ) ? absint( $instance['smallest'] ) : 8 );
-		$args['number'] = intval( $instance['number'] );
-		$args['child_of'] = intval( $instance['child_of'] );
-		$args['parent'] = ( $instance['parent'] ) ? intval( $instance['parent'] ) : '';
-		$args['separator'] = ( $instance['separator'] ) ? $instance['separator'] : "\n";
-		$args['pad_counts'] = isset( $instance['pad_counts'] ) ? $instance['pad_counts'] : false;
-		$args['hide_empty'] = isset( $instance['hide_empty'] ) ? $instance['hide_empty'] : false;
-		$args['unit'] = $instance['unit'];
-		$args['format'] = $instance['format'];
-		$args['include'] = $instance['include'];
-		$args['exclude'] = $instance['exclude'];
-		$args['order'] = $instance['order'];
-		$args['orderby'] = $instance['orderby'];
-		$args['link'] = $instance['link'];
-		$args['search'] = $instance['search'];
-		$args['name__like'] = $instance['name__like'];
-		$args['echo'] = false;
+		/* Set up the arguments for wp_tag_cloud(). */
+		$args = array(
+			'taxonomy' => 	$instance['taxonomy'],
+			'largest' => 	!empty( $instance['largest'] ) ? absint( $instance['largest'] ) : 22,
+			'smallest' =>	!empty( $instance['smallest'] ) ? absint( $instance['smallest'] ) : 8,
+			'number' =>	intval( $instance['number'] ),
+			'child_of' =>	intval( $instance['child_of'] ),
+			'parent' =>	!empty( $instance['parent'] ) ? intval( $instance['parent'] ) : '',
+			'separator' =>	!empty( $instance['separator'] ) ? $instance['separator'] : "\n",
+			'pad_counts' =>	!empty( $instance['pad_counts'] ) ? true : false,
+			'hide_empty' =>	!empty( $instance['hide_empty'] ) ? true : false,
+			'unit' =>		$instance['unit'],
+			'format' =>	$instance['format'],
+			'include' =>	!empty( $instance['include'] ) ? join( ', ', $instance['include'] ) : '',
+			'exclude' =>	!empty( $instance['exclude'] ) ? join( ', ', $instance['exclude'] ) : '',
+			'order' =>	$instance['order'],
+			'orderby' =>	$instance['orderby'],
+			'link' =>		$instance['link'],
+			'search' =>	$instance['search'],
+			'name__like' =>	$instance['name__like'],
+			'echo' =>		false
+		);
 
-		/* Open the output of the widget. */
+		/* Output the theme's $before_widget wrapper. */
 		echo $before_widget;
 
-		/* If there is a title given, add it along with the $before_title and $after_title variables. */
-		if ( $instance['title'] )
+		/* If a title was input by the user, display it. */
+		if ( !empty( $instance['title'] ) )
 			echo $before_title . apply_filters( 'widget_title',  $instance['title'], $instance, $this->id_base ) . $after_title;
 
 		/* Get the tag cloud. */
@@ -78,7 +109,7 @@ class Hybrid_Widget_Tags extends WP_Widget {
 		/* Output the tag cloud. */
 		echo $tags;
 
-		/* Close the output of the widget. */
+		/* Close the theme's widget wrapper. */
 		echo $after_widget;
 	}
 
@@ -125,28 +156,39 @@ class Hybrid_Widget_Tags extends WP_Widget {
 	 */
 	function form( $instance ) {
 
-		/* Set up some defaults for the widget. */
+		/* Set up the default form values. */
 		$defaults = array(
-			'title' => __( 'Tags', $this->textdomain ),
+			'title' => esc_attr__( 'Tags', $this->textdomain ),
 			'order' => 'ASC',
 			'orderby' => 'name',
 			'format' => 'flat',
-			'unit' => 'pt', 'smallest' => 8,
+			'include' => array(),
+			'exclude' => array(),
+			'unit' => 'pt',
+			'smallest' => 8,
 			'largest' => 22,
 			'link' => 'view',
 			'number' => 45,
+			'separator' => '',
+			'child_of' => '',
+			'parent' => '',
 			'taxonomy' => 'post_tag',
-			'hide_empty' => 1
+			'hide_empty' => 1,
+			'pad_counts' => false,
+			'search' => '',
+			'name__like' => ''
 		);
+
+		/* Merge the user-selected arguments with the defaults. */
 		$instance = wp_parse_args( (array) $instance, $defaults );
 
 		/* <select> element options. */
 		$taxonomies = get_taxonomies( array( 'show_tagcloud' => true ), 'objects' );
 		$terms = get_terms( $instance['taxonomy'] );
-		$link = array( 'view' => __( 'View', $this->textdomain ), 'edit' => __( 'Edit', $this->textdomain ) );
-		$format = array( 'flat' => __( 'Flat', $this->textdomain ), 'list' => __( 'List', $this->textdomain ) );
-		$order = array( 'ASC' => __( 'Ascending', $this->textdomain ), 'DESC' => __( 'Descending', $this->textdomain ), 'RAND' => __( 'Random', $this->textdomain ) );
-		$orderby = array( 'count' => __( 'Count', $this->textdomain ), 'name' => __( 'Name', $this->textdomain ) );
+		$link = array( 'view' => esc_attr__( 'View', $this->textdomain ), 'edit' => esc_attr__( 'Edit', $this->textdomain ) );
+		$format = array( 'flat' => esc_attr__( 'Flat', $this->textdomain ), 'list' => esc_attr__( 'List', $this->textdomain ) );
+		$order = array( 'ASC' => esc_attr__( 'Ascending', $this->textdomain ), 'DESC' => esc_attr__( 'Descending', $this->textdomain ), 'RAND' => esc_attr__( 'Random', $this->textdomain ) );
+		$orderby = array( 'count' => esc_attr__( 'Count', $this->textdomain ), 'name' => esc_attr__( 'Name', $this->textdomain ) );
 		$unit = array( 'pt' => 'pt', 'px' => 'px', 'em' => 'em', '%' => '%' );
 
 		?>
@@ -154,7 +196,7 @@ class Hybrid_Widget_Tags extends WP_Widget {
 		<div class="hybrid-widget-controls columns-3">
 		<p>
 			<label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:', $this->textdomain ); ?></label>
-			<input type="text" class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo $instance['title']; ?>" />
+			<input type="text" class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo esc_attr( $instance['title'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'taxonomy' ); ?>"><code>taxonomy</code></label> 
@@ -217,15 +259,15 @@ class Hybrid_Widget_Tags extends WP_Widget {
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'number' ); ?>"><code>number</code></label>
-			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'number' ); ?>" name="<?php echo $this->get_field_name( 'number' ); ?>" value="<?php echo $instance['number']; ?>" />
+			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'number' ); ?>" name="<?php echo $this->get_field_name( 'number' ); ?>" value="<?php echo esc_attr( $instance['number'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'largest' ); ?>"><code>largest</code></label>
-			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'largest' ); ?>" name="<?php echo $this->get_field_name( 'largest' ); ?>" value="<?php echo $instance['largest']; ?>" />
+			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'largest' ); ?>" name="<?php echo $this->get_field_name( 'largest' ); ?>" value="<?php echo esc_attr( $instance['largest'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'smallest' ); ?>"><code>smallest</code></label>
-			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'smallest' ); ?>" name="<?php echo $this->get_field_name( 'smallest' ); ?>" value="<?php echo $instance['smallest']; ?>" />
+			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'smallest' ); ?>" name="<?php echo $this->get_field_name( 'smallest' ); ?>" value="<?php echo esc_attr( $instance['smallest'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'unit' ); ?>"><code>unit</code></label> 
@@ -240,23 +282,23 @@ class Hybrid_Widget_Tags extends WP_Widget {
 		<div class="hybrid-widget-controls columns-3 column-last">
 		<p>
 			<label for="<?php echo $this->get_field_id( 'separator' ); ?>"><code>separator</code></label>
-			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'separator' ); ?>" name="<?php echo $this->get_field_name( 'separator' ); ?>" value="<?php echo $instance['separator']; ?>" />
+			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'separator' ); ?>" name="<?php echo $this->get_field_name( 'separator' ); ?>" value="<?php echo esc_attr( $instance['separator'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'child_of' ); ?>"><code>child_of</code></label>
-			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'child_of' ); ?>" name="<?php echo $this->get_field_name( 'child_of' ); ?>" value="<?php echo $instance['child_of']; ?>" />
+			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'child_of' ); ?>" name="<?php echo $this->get_field_name( 'child_of' ); ?>" value="<?php echo esc_attr( $instance['child_of'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'parent' ); ?>"><code>parent</code></label>
-			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'parent' ); ?>" name="<?php echo $this->get_field_name( 'parent' ); ?>" value="<?php echo $instance['parent']; ?>" />
+			<input type="text" class="smallfat code" id="<?php echo $this->get_field_id( 'parent' ); ?>" name="<?php echo $this->get_field_name( 'parent' ); ?>" value="<?php echo esc_attr( $instance['parent'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'search' ); ?>"><code>search</code></label>
-			<input type="text" class="widefat code" id="<?php echo $this->get_field_id( 'search' ); ?>" name="<?php echo $this->get_field_name( 'search' ); ?>" value="<?php echo $instance['search']; ?>" />
+			<input type="text" class="widefat code" id="<?php echo $this->get_field_id( 'search' ); ?>" name="<?php echo $this->get_field_name( 'search' ); ?>" value="<?php echo esc_attr( $instance['search'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'name__like' ); ?>"><code>name__like</code></label>
-			<input type="text" class="widefat code" id="<?php echo $this->get_field_id( 'name__like' ); ?>" name="<?php echo $this->get_field_name( 'name__like' ); ?>" value="<?php echo $instance['name__like']; ?>" />
+			<input type="text" class="widefat code" id="<?php echo $this->get_field_id( 'name__like' ); ?>" name="<?php echo $this->get_field_name( 'name__like' ); ?>" value="<?php echo esc_attr( $instance['name__like'] ); ?>" />
 		</p>
 		<p>
 			<label for="<?php echo $this->get_field_id( 'pad_counts' ); ?>">
diff --git a/wp-content/themes/hybrid/library/css/18px.css b/wp-content/themes/hybrid/library/css/18px.css
index 610ad4cda..0dc15b63c 100644
--- a/wp-content/themes/hybrid/library/css/18px.css
+++ b/wp-content/themes/hybrid/library/css/18px.css
@@ -1 +1 @@
-html,body,div,span,object,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,tt,var,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;vertical-align:baseline;outline:none;font-size:100%;background:transparent;border:none;text-decoration:none}b,i,hr,u,center,menu,layer,s,strike,font,xmp{margin:0;padding:0;vertical-align:baseline;outline:none;font-size:100%;font-weight:normal;font-style:normal;background:transparent;border:none;text-decoration:none}font{color:#333}center{text-align:left}body{line-height:21px;font-family:Georgia,Times,"Times New Roman",serif;color:#333;background:#fff}h1,h2,h3,h4,h5,h6{font-style:normal;font-weight:normal;margin:0 0 18px 0}h1{font-size:1.8em}h2{font-size:1.7em}h3{font-size:1.55em;}h4{font-size:1.4em}h5{font-size:1.25em}h6{font-size:1.1em}p{margin:0 0 18px 0}ol,ul{list-style:none}ul{list-style:disc;margin:0 0 18px 2.5em}ol{list-style-type:decimal;margin:0 0 18px 3em}ol ol{list-style:upper-roman}ol ol ol{list-style:lower-roman}ol ol ol ol{list-style:upper-alpha}ol ol ol ol ol{list-style:lower-alpha}ul ul,ol ol,ul ol,ol ul{margin-bottom:0}dl{margin:0 0 18px 3px}dl dt{font-weight:bold;margin:12px 0 0 0}dl dd{margin:6px 0 0 1.5em}strong{font-weight:bold}strong strong{font-weight:normal}em,cite{font-style:italic}em em,cite cite{font-style:normal}abbr{cursor:help}acronym{text-transform:uppercase;border-bottom:1px dashed #666;cursor:help}big{font-size:120%}small,sup,sub{font-size:80%}sup{vertical-align:baseline;position:relative;bottom:0.3em}sub{vertical-align:baseline;position:relative;top:0.3em}address{font-style:italic;margin:0 0 18px 0}li address,dd address{margin:0}blockquote{margin:0 2.5em;font-style:normal}blockquote em,blockquote cite{font-style:italic}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}a{cursor:pointer}a img{border:none}pre{overflow:auto;font:.9em Monaco,monospace,Courier,"Courier New";line-height:18px;margin-bottom:18px;padding:9px}code{font:.9em Monaco,monospace,Courier,"Courier New"}pre code{font-size:1em}ins,dfn{font-style:italic;text-decoration:none;border-bottom:1px solid #666}del{text-decoration:line-through}object{margin-bottom:18px}input,textarea{font-size:1em;font-family:Georgia,Times,"Times New Roman",serif;padding:3px}:focus{outline:none}form label{cursor:pointer}option{padding:1px 3px}table{border-collapse:collapse;border-spacing:0;margin-bottom:18px}th,td{text-align:left}hr{margin-bottom:18px}img.wp-smiley{max-height:12px;margin:0;padding:0;border:none}.gallery{display:block;text-align:center;margin-bottom:18px !important}.alignleft,.left{float:left;margin-right:15px}.alignright,.right{float:right;margin-left:15px}.aligncenter,.center{display:block;margin:0 auto 18px auto}.alignnone,.block{clear:both;margin:0 0 18px 0}.clear{clear:both}img.alignleft,img.alignright{display:inline}blockquote.alignleft,blockquote .alignright{width:33%}
\ No newline at end of file
+html,body,div,span,object,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,tt,var,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video{margin:0;padding:0;vertical-align:baseline;outline:none;font-size:100%;background:transparent;border:none;text-decoration:none}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}b,i,hr,u,center,menu,layer,s,strike,font,xmp{margin:0;padding:0;vertical-align:baseline;outline:none;font-size:100%;font-weight:normal;font-style:normal;background:transparent;border:none;text-decoration:none}body{line-height:21px;font-family:Georgia,Times,"Times New Roman",serif;color:#333;background:#fff}h1,h2,h3,h4,h5,h6{font-style:normal;font-weight:normal;margin:0 0 18px 0}h1{font-size:1.8em}h2{font-size:1.7em}h3{font-size:1.55em}h4{font-size:1.4em}h5{font-size:1.25em}h6{font-size:1.1em}p{margin:0 0 18px 0}ol,ul{list-style:none}ul{list-style:disc;margin:0 0 18px 2.5em}ol{list-style-type:decimal;margin:0 0 18px 3em}ol ol{list-style:upper-roman}ol ol ol{list-style:lower-roman}ol ol ol ol{list-style:upper-alpha}ol ol ol ol ol{list-style:lower-alpha}ul ul,ol ol,ul ol,ol ul{margin-bottom:0}dl{margin:0 0 18px 3px}dl dt{font-weight:bold;margin:12px 0 0 0}dl dd{margin:6px 0 0 1.5em}strong{font-weight:bold}strong strong{font-weight:normal}em,cite{font-style:italic}em em,cite cite{font-style:normal}abbr{cursor:help}acronym{text-transform:uppercase;border-bottom:1px dashed #666;cursor:help}big{font-size:120%}small,sup,sub{font-size:80%}sup{vertical-align:baseline;position:relative;bottom:0.3em}sub{vertical-align:baseline;position:relative;top:0.3em}address{font-style:italic;margin:0 0 18px 0}li address,dd address{margin:0}blockquote{margin:0 2.5em;font-style:normal}blockquote em,blockquote cite{font-style:italic}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}a{cursor:pointer}a img{border:none}pre{overflow:auto;font:.9em Monaco,monospace,Courier,"Courier New";line-height:18px;margin-bottom:18px;padding:9px}code{font:.9em Monaco,monospace,Courier,"Courier New"}pre code{font-size:1em}ins,dfn{font-style:italic;text-decoration:none;border-bottom:1px solid #666}del,s,strike{text-decoration:line-through}object{margin-bottom:18px}input,textarea{font-size:1em;padding:3px}input[type="submit"]{cursor:pointer}:focus{outline:none}form label{cursor:pointer}option{padding:1px 3px}table{border-collapse:collapse;border-spacing:0;margin-bottom:18px}th,td{text-align:left}hr{height:1px;margin-bottom:18px;background:#333}img.wp-smiley{max-height:12px;margin:0;padding:0;border:none}.gallery{display:block;text-align:center;margin-bottom:18px}.alignleft,.left{float:left;margin-right:15px}.alignright,.right{float:right;margin-left:15px}.aligncenter,.center{display:block;margin:0 auto 18px auto}.alignnone,.block{clear:both;margin:0 0 18px 0}.clear{clear:both}img.alignleft,img.alignright{display:inline}blockquote.alignleft,blockquote.alignright{width:33%}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/css/18px.dev.css b/wp-content/themes/hybrid/library/css/18px.dev.css
new file mode 100644
index 000000000..adb122a95
--- /dev/null
+++ b/wp-content/themes/hybrid/library/css/18px.dev.css
@@ -0,0 +1,308 @@
+html, body, div, span, object, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, tt, var, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
+	margin: 0;
+	padding: 0;
+	vertical-align: baseline;
+	outline: none;
+	font-size: 100%;
+	background: transparent;
+	border: none;
+	text-decoration: none;
+	}
+
+article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { 
+	display: block;
+	}
+
+b, i, hr, u, center, menu, layer, s, strike, font, xmp {
+	margin: 0;
+	padding: 0;
+	vertical-align: baseline;
+	outline: none;
+	font-size: 100%;
+	font-weight: normal;
+	font-style: normal;
+	background: transparent;
+	border: none;
+	text-decoration: none;
+	}
+
+body {
+	line-height: 21px;
+	font-family: Georgia, Times, "Times New Roman", serif;
+	color: #333;
+	background: #fff;
+	}
+
+h1, h2, h3, h4, h5, h6 {
+	font-style: normal;
+	font-weight: normal;
+	margin: 0 0 18px 0;
+	}
+
+h1 {
+	font-size: 1.8em;
+	}
+
+h2 {
+	font-size: 1.7em;
+	}
+
+h3 {
+	font-size: 1.55em;
+	}
+
+h4 {
+	font-size: 1.4em;
+	}
+
+h5 {
+	font-size: 1.25em;
+	}
+
+h6 {
+	font-size: 1.1em;
+	}
+
+p {
+	margin: 0 0 18px 0;
+	}
+
+ol, ul {
+	list-style: none;
+	}
+
+ul {
+	list-style: disc;
+	margin: 0 0 18px 2.5em;
+	}
+
+ol {
+	list-style-type: decimal;
+	margin: 0 0 18px 3em;
+	}
+
+ol ol {
+	list-style: upper-roman;
+	}
+
+ol ol ol {
+	list-style: lower-roman;
+	}
+
+ol ol ol ol {
+	list-style: upper-alpha;
+	}
+
+ol ol ol ol ol {
+	list-style: lower-alpha;
+	}
+
+ul ul, ol ol, ul ol, ol ul {
+	margin-bottom: 0;
+	}
+
+dl {
+	margin: 0 0 18px 3px;
+	}
+
+dl dt {
+	font-weight: bold;
+	margin: 12px 0 0 0;
+	}
+
+dl dd {
+	margin: 6px 0 0 1.5em;
+	}
+
+strong {
+	font-weight: bold;
+	}
+
+strong strong {
+	font-weight: normal;
+	}
+
+em, cite {
+	font-style: italic;
+	}
+
+em em, cite cite {
+	font-style: normal;
+	}
+
+abbr {
+	cursor: help;
+	}
+
+acronym {
+	text-transform: uppercase;
+	border-bottom: 1px dashed #666;
+	cursor: help;
+	}
+
+big {
+	font-size: 120%;
+	}
+
+small, sup, sub {
+	font-size: 80%;
+	}
+
+sup {
+	vertical-align: baseline;
+	position: relative;
+	bottom: 0.3em;
+	}
+
+sub {
+	vertical-align: baseline;
+	position: relative;
+	top: 0.3em;
+	}
+
+address {
+	font-style: italic;
+	margin: 0 0 18px 0;
+	}
+
+li address, dd address {
+	margin: 0;
+	}
+
+blockquote {
+	margin: 0 2.5em;
+	font-style: normal;
+	}
+
+blockquote em, blockquote cite {
+	font-style: italic;
+	}
+
+blockquote, q {
+	quotes: none;
+	}
+
+blockquote:before, blockquote:after, q:before, q:after {
+	content: '';
+	content: none;
+	}
+
+a {
+	cursor: pointer;
+	}
+
+a img {
+	border: none;
+	}
+
+pre {
+	overflow: auto;
+	font: .9em Monaco, monospace, Courier, "Courier New";
+	line-height: 18px;
+	margin-bottom: 18px;
+	padding: 9px;
+	}
+
+code {
+	font: .9em Monaco, monospace, Courier, "Courier New";
+	}
+
+pre code {
+	font-size: 1em;
+	}
+
+ins, dfn {
+	font-style: italic;
+	text-decoration: none;
+	border-bottom: 1px solid #666;
+	}
+
+del, s, strike {
+	text-decoration: line-through;
+	}
+
+object {
+	margin-bottom: 18px;
+	}
+
+input, textarea {
+	font-size: 1em;
+	padding: 3px;
+	}
+
+input[type="submit"] {
+	cursor: pointer;
+	}
+
+:focus {
+	outline: none;
+	}
+
+form label {
+	cursor: pointer;
+	}
+
+option {
+	padding: 1px 3px;
+	}
+
+table {
+	border-collapse: collapse;
+	border-spacing: 0;
+	margin-bottom: 18px;
+	}
+
+th, td {
+	text-align: left;
+	}
+
+hr {
+	height: 1px;
+	margin-bottom: 18px;
+	background: #333;
+	}
+
+img.wp-smiley {
+	max-height: 12px;
+	margin: 0;
+	padding: 0;
+	border: none;
+	}
+
+.gallery {
+	display: block;
+	text-align: center;
+	margin-bottom: 18px;
+	}
+
+.alignleft, .left {
+	float: left;
+	margin-right: 15px;
+	}
+
+.alignright, .right {
+	float: right;
+	margin-left: 15px;
+	}
+
+.aligncenter, .center {
+	display: block;
+	margin: 0 auto 18px auto;
+	}
+
+.alignnone, .block {
+	clear: both;
+	margin: 0 0 18px 0;
+	}
+
+.clear {
+	clear: both;
+	}
+
+img.alignleft, img.alignright {
+	display: inline;
+	}
+
+blockquote.alignleft, blockquote.alignright {
+	width: 33%;
+	}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/css/20px.css b/wp-content/themes/hybrid/library/css/20px.css
index 439020558..8e4fd779b 100644
--- a/wp-content/themes/hybrid/library/css/20px.css
+++ b/wp-content/themes/hybrid/library/css/20px.css
@@ -1 +1 @@
-html,body,div,span,object,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,tt,var,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;vertical-align:baseline;outline:none;font-size:100%;background:transparent;border:none;text-decoration:none}b,i,hr,u,center,menu,layer,s,strike,font,xmp{margin:0;padding:0;vertical-align:baseline;outline:none;font-size:100%;font-weight:normal;font-style:normal;background:transparent;border:none;text-decoration:none}font{color:#333}center{text-align:left}body{line-height:20px;font-family:Georgia,Times,"Times New Roman",serif;color:#333;background:#fff}h1,h2,h3,h4,h5,h6{font-style:normal;font-weight:normal;margin:0 0 20px 0}h1{font-size:1.8em}h2{font-size:1.7em}h3{font-size:1.55em;}h4{font-size:1.4em}h5{font-size:1.25em}h6{font-size:1.1em}p{margin:0 0 20px 0}ol,ul{list-style:none}ul{list-style:disc;margin:0 0 20px 2.5em}ol{list-style-type:decimal;margin:0 0 20px 3em}ol ol{list-style:upper-roman}ol ol ol{list-style:lower-roman}ol ol ol ol{list-style:upper-alpha}ol ol ol ol ol{list-style:lower-alpha}ul ul,ol ol,ul ol,ol ul{margin-bottom:0}dl{margin:0 0 20px 5px}dl dt{font-weight:bold;margin:10px 0 0 0}dl dd{margin:5px 0 0 1.5em}strong{font-weight:bold}strong strong{font-weight:normal}em,cite{font-style:italic}em em,cite cite{font-style:normal}abbr{cursor:help}acronym{text-transform:uppercase;border-bottom:1px dashed #666;cursor:help}big{font-size:120%}small,sup,sub{font-size:80%}sup{vertical-align:baseline;position:relative;bottom:0.3em}sub{vertical-align:baseline;position:relative;top:0.3em}address{font-style:italic;margin:0 0 20px 0}li address,dd address{margin:0}blockquote{margin:0 25px;font-style:normal}blockquote em,blockquote cite{font-style:italic}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}a{cursor:pointer}a img{border:none}pre{overflow:auto;font:.9em Monaco,monospace,Courier,"Courier New";line-height:20px;margin-bottom:20px;padding:10px}code{font:.9em Monaco,monospace,Courier,"Courier New"}pre code{font-size:1em}ins,dfn{font-style:italic;text-decoration:none;border-bottom:1px solid #666}del{text-decoration:line-through}object{margin-bottom:20px}input,textarea{font-size:1em;font-family:Georgia,Times,"Times New Roman",serif;padding:4px}:focus{outline:none}form label{cursor:pointer}option{padding:1px 2px}table{border-collapse:collapse;border-spacing:0;margin-bottom:20px}th,td{text-align:left}hr{margin-bottom:20px}img.wp-smiley{max-height:12px;margin:0;padding:0;border:none}.gallery{display:block;text-align:center;margin-bottom:20px !important}.alignleft,.left{float:left;margin-right:15px}.alignright,.right{float:right;margin-left:15px}.aligncenter,.center{display:block;margin:0 auto 20px auto}.alignnone,.block{clear:both;margin:0 0 20px 0}.clear{clear:both}img.alignleft,img.alignright{display:inline}blockquote.alignleft,blockquote .alignright{width:33%}
\ No newline at end of file
+html,body,div,span,object,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,tt,var,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video{margin:0;padding:0;vertical-align:baseline;outline:none;font-size:100%;background:transparent;border:none;text-decoration:none}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}b,i,hr,u,center,menu,layer,s,strike,font,xmp{margin:0;padding:0;vertical-align:baseline;outline:none;font-size:100%;font-weight:normal;font-style:normal;background:transparent;border:none;text-decoration:none}body{line-height:20px;font-family:Georgia,Times,"Times New Roman",serif;color:#333;background:#fff}h1,h2,h3,h4,h5,h6{font-style:normal;font-weight:normal;margin:0 0 20px 0}h1{font-size:1.8em}h2{font-size:1.7em}h3{font-size:1.55em}h4{font-size:1.4em}h5{font-size:1.25em}h6{font-size:1.1em}p{margin:0 0 20px 0}ol,ul{list-style:none}ul{list-style:disc;margin:0 0 20px 2.5em}ol{list-style-type:decimal;margin:0 0 20px 3em}ol ol{list-style:upper-roman}ol ol ol{list-style:lower-roman}ol ol ol ol{list-style:upper-alpha}ol ol ol ol ol{list-style:lower-alpha}ul ul,ol ol,ul ol,ol ul{margin-bottom:0}dl{margin:0 0 20px 5px}dl dt{font-weight:bold;margin:10px 0 0 0}dl dd{margin:5px 0 0 1.5em}strong{font-weight:bold}strong strong{font-weight:normal}em,cite{font-style:italic}em em,cite cite{font-style:normal}abbr{cursor:help}acronym{text-transform:uppercase;border-bottom:1px dashed #666;cursor:help}big{font-size:120%}small,sup,sub{font-size:80%}sup{vertical-align:baseline;position:relative;bottom:0.3em}sub{vertical-align:baseline;position:relative;top:0.3em}address{font-style:italic;margin:0 0 20px 0}li address,dd address{margin:0}blockquote{margin:0 25px;font-style:normal}blockquote em,blockquote cite{font-style:italic}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}a{cursor:pointer}a img{border:none}pre{overflow:auto;font:.9em Monaco,monospace,Courier,"Courier New";line-height:20px;margin-bottom:20px;padding:10px}code{font:.9em Monaco,monospace,Courier,"Courier New"}pre code{font-size:1em}ins,dfn{font-style:italic;text-decoration:none;border-bottom:1px solid #666}del,s,strike{text-decoration:line-through}object{margin-bottom:20px}input,textarea{font-size:1em;padding:4px}input[type="submit"]{cursor:pointer}:focus{outline:none}form label{cursor:pointer}option{padding:1px 2px}table{border-collapse:collapse;border-spacing:0;margin-bottom:20px}th,td{text-align:left}hr{height:1px;margin-bottom:20px;background:#333}img.wp-smiley{max-height:12px;margin:0;padding:0;border:none}.gallery{display:block;text-align:center;margin-bottom:20px}.alignleft,.left{float:left;margin-right:15px}.alignright,.right{float:right;margin-left:15px}.aligncenter,.center{display:block;margin:0 auto 20px auto}.alignnone,.block{clear:both;margin:0 0 20px 0}.clear{clear:both}img.alignleft,img.alignright{display:inline}blockquote.alignleft,blockquote.alignright{width:33%}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/css/20px.dev.css b/wp-content/themes/hybrid/library/css/20px.dev.css
new file mode 100644
index 000000000..9173d107a
--- /dev/null
+++ b/wp-content/themes/hybrid/library/css/20px.dev.css
@@ -0,0 +1,308 @@
+html, body, div, span, object, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, tt, var, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
+	margin: 0;
+	padding: 0;
+	vertical-align: baseline;
+	outline: none;
+	font-size: 100%;
+	background: transparent;
+	border: none;
+	text-decoration: none;
+	}
+
+article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { 
+	display: block;
+	}
+
+b, i, hr, u, center, menu, layer, s, strike, font, xmp {
+	margin: 0;
+	padding: 0;
+	vertical-align: baseline;
+	outline: none;
+	font-size: 100%;
+	font-weight: normal;
+	font-style: normal;
+	background: transparent;
+	border: none;
+	text-decoration: none;
+	}
+
+body {
+	line-height: 20px;
+	font-family: Georgia, Times, "Times New Roman", serif;
+	color: #333;
+	background: #fff;
+	}
+
+h1, h2, h3, h4, h5, h6 {
+	font-style: normal;
+	font-weight: normal;
+	margin: 0 0 20px 0;
+	}
+
+h1 {
+	font-size: 1.8em;
+	}
+
+h2 {
+	font-size: 1.7em;
+	}
+
+h3 {
+	font-size: 1.55em;
+	}
+
+h4 {
+	font-size: 1.4em;
+	}
+
+h5 {
+	font-size: 1.25em;
+	}
+
+h6 {
+	font-size: 1.1em;
+	}
+
+p {
+	margin: 0 0 20px 0;
+	}
+
+ol, ul {
+	list-style: none;
+	}
+
+ul {
+	list-style: disc;
+	margin: 0 0 20px 2.5em;
+	}
+
+ol {
+	list-style-type: decimal;
+	margin: 0 0 20px 3em;
+	}
+
+ol ol {
+	list-style: upper-roman;
+	}
+
+ol ol ol {
+	list-style: lower-roman;
+	}
+
+ol ol ol ol {
+	list-style: upper-alpha;
+	}
+
+ol ol ol ol ol {
+	list-style: lower-alpha;
+	}
+
+ul ul, ol ol, ul ol, ol ul {
+	margin-bottom: 0;
+	}
+
+dl {
+	margin: 0 0 20px 5px;
+	}
+
+dl dt {
+	font-weight: bold;
+	margin: 10px 0 0 0;
+	}
+
+dl dd {
+	margin: 5px 0 0 1.5em;
+	}
+
+strong {
+	font-weight: bold;
+	}
+
+strong strong {
+	font-weight: normal;
+	}
+
+em, cite {
+	font-style: italic;
+	}
+
+em em, cite cite {
+	font-style: normal;
+	}
+
+abbr {
+	cursor: help;
+	}
+
+acronym {
+	text-transform: uppercase;
+	border-bottom: 1px dashed #666;
+	cursor: help;
+	}
+
+big {
+	font-size: 120%;
+	}
+
+small, sup, sub {
+	font-size: 80%;
+	}
+
+sup {
+	vertical-align: baseline;
+	position: relative;
+	bottom: 0.3em;
+	}
+
+sub {
+	vertical-align: baseline;
+	position: relative;
+	top: 0.3em;
+	}
+
+address {
+	font-style: italic;
+	margin: 0 0 20px 0;
+	}
+
+li address, dd address {
+	margin: 0;
+	}
+
+blockquote {
+	margin: 0 25px;
+	font-style: normal;
+	}
+
+blockquote em, blockquote cite {
+	font-style: italic;
+	}
+
+blockquote, q {
+	quotes: none;
+	}
+
+blockquote:before, blockquote:after, q:before, q:after {
+	content: '';
+	content: none;
+	}
+
+a {
+	cursor: pointer;
+	}
+
+a img {
+	border: none;
+	}
+
+pre {
+	overflow: auto;
+	font: .9em Monaco, monospace, Courier, "Courier New";
+	line-height: 20px;
+	margin-bottom: 20px;
+	padding: 10px;
+	}
+
+code {
+	font: .9em Monaco, monospace, Courier, "Courier New";
+	}
+
+pre code {
+	font-size: 1em;
+	}
+
+ins, dfn {
+	font-style: italic;
+	text-decoration: none;
+	border-bottom: 1px solid #666;
+	}
+
+del, s, strike {
+	text-decoration: line-through;
+	}
+
+object {
+	margin-bottom: 20px;
+	}
+
+input, textarea {
+	font-size: 1em;
+	padding: 4px;
+	}
+
+input[type="submit"] {
+	cursor: pointer;
+	}
+
+:focus {
+	outline: none;
+	}
+
+form label {
+	cursor: pointer;
+	}
+
+option {
+	padding: 1px 2px;
+	}
+
+table {
+	border-collapse: collapse;
+	border-spacing: 0;
+	margin-bottom: 20px;
+	}
+
+th, td {
+	text-align: left;
+	}
+
+hr {
+	height: 1px;
+	margin-bottom: 20px;
+	background: #333;
+	}
+
+img.wp-smiley {
+	max-height: 12px;
+	margin: 0;
+	padding: 0;
+	border: none;
+	}
+
+.gallery {
+	display: block;
+	text-align: center;
+	margin-bottom: 20px;
+	}
+
+.alignleft, .left {
+	float: left;
+	margin-right: 15px;
+	}
+
+.alignright, .right {
+	float: right;
+	margin-left: 15px;
+	}
+
+.aligncenter, .center {
+	display: block;
+	margin: 0 auto 20px auto;
+	}
+
+.alignnone, .block {
+	clear: both;
+	margin: 0 0 20px 0;
+	}
+
+.clear {
+	clear: both;
+	}
+
+img.alignleft, img.alignright {
+	display: inline;
+	}
+
+blockquote.alignleft, blockquote.alignright {
+	width: 33%;
+	}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/css/21px.css b/wp-content/themes/hybrid/library/css/21px.css
index 4082bf0cf..557c8053a 100644
--- a/wp-content/themes/hybrid/library/css/21px.css
+++ b/wp-content/themes/hybrid/library/css/21px.css
@@ -1 +1 @@
-html,body,div,span,object,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,tt,var,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;vertical-align:baseline;outline:none;font-size:100%;background:transparent;border:none;text-decoration:none}b,i,hr,u,center,menu,layer,s,strike,font,xmp{margin:0;padding:0;vertical-align:baseline;outline:none;font-size:100%;font-weight:normal;font-style:normal;background:transparent;border:none;text-decoration:none}font{color:#333}center{text-align:left}body{line-height:24px;font-family:Georgia,Times,"Times New Roman",serif;color:#333;background:#fff}h1,h2,h3,h4,h5,h6{font-style:normal;font-weight:normal;margin:0 0 21px 0}h1{font-size:1.8em}h2{font-size:1.7em}h3{font-size:1.55em;}h4{font-size:1.4em}h5{font-size:1.25em}h6{font-size:1.1em}p{margin:0 0 21px 0}ol,ul{list-style:none}ul{list-style:disc;margin:0 0 21px 2.5em}ol{list-style-type:decimal;margin:0 0 21px 3em}ol ol{list-style:upper-roman}ol ol ol{list-style:lower-roman}ol ol ol ol{list-style:upper-alpha}ol ol ol ol ol{list-style:lower-alpha}ul ul,ol ol,ul ol,ol ul{margin-bottom:0}dl{margin:0 0 18px 3px}dl dt{font-weight:bold;margin:12px 0 0 0}dl dd{margin:6px 0 0 1.5em}strong{font-weight:bold}strong strong{font-weight:normal}em,cite{font-style:italic}em em,cite cite{font-style:normal}abbr{cursor:help}acronym{text-transform:uppercase;border-bottom:1px dashed #666;cursor:help}big{font-size:120%}small,sup,sub{font-size:80%}sup{vertical-align:baseline;position:relative;bottom:0.3em}sub{vertical-align:baseline;position:relative;top:0.3em}address{font-style:italic;margin:0 0 21px 0}li address,dd address{margin:0}blockquote{margin:0 2.5em;font-style:normal}blockquote em,blockquote cite{font-style:italic}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}a{cursor:pointer}a img{border:none}pre{overflow:auto;font:.9em Monaco,monospace,Courier,"Courier New";line-height:21px;margin-bottom:21px;padding:9px}code{font:.9em Monaco,monospace,Courier,"Courier New"}pre code{font-size:1em}ins,dfn{font-style:italic;text-decoration:none;border-bottom:1px solid #666}del{text-decoration:line-through}object{margin-bottom:21px}input,textarea{font-size:1em;font-family:Georgia,Times,"Times New Roman",serif;padding:3px}:focus{outline:none}form label{cursor:pointer}option{padding:1px 3px}table{border-collapse:collapse;border-spacing:0;margin-bottom:21px}th,td{text-align:left}hr{margin-bottom:21px}img.wp-smiley{max-height:12px;margin:0;padding:0;border:none}.gallery{display:block;text-align:center;margin-bottom:21px !important}.alignleft,.left{float:left;margin-right:15px}.alignright,.right{float:right;margin-left:15px}.aligncenter,.center{display:block;margin:0 auto 21px auto}.alignnone,.block{clear:both;margin:0 0 21px 0}.clear{clear:both}img.alignleft,img.alignright{display:inline}blockquote.alignleft,blockquote .alignright{width:33%}
\ No newline at end of file
+html,body,div,span,object,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,tt,var,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video{margin:0;padding:0;vertical-align:baseline;outline:none;font-size:100%;background:transparent;border:none;text-decoration:none}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}b,i,hr,u,center,menu,layer,s,strike,font,xmp{margin:0;padding:0;vertical-align:baseline;outline:none;font-size:100%;font-weight:normal;font-style:normal;background:transparent;border:none;text-decoration:none}body{line-height:24px;font-family:Georgia,Times,"Times New Roman",serif;color:#333;background:#fff}h1,h2,h3,h4,h5,h6{font-style:normal;font-weight:normal;margin:0 0 21px 0}h1{font-size:1.8em}h2{font-size:1.7em}h3{font-size:1.55em}h4{font-size:1.4em}h5{font-size:1.25em}h6{font-size:1.1em}p{margin:0 0 21px 0}ol,ul{list-style:none}ul{list-style:disc;margin:0 0 21px 2.5em}ol{list-style-type:decimal;margin:0 0 21px 3em}ol ol{list-style:upper-roman}ol ol ol{list-style:lower-roman}ol ol ol ol{list-style:upper-alpha}ol ol ol ol ol{list-style:lower-alpha}ul ul,ol ol,ul ol,ol ul{margin-bottom:0}dl{margin:0 0 18px 3px}dl dt{font-weight:bold;margin:12px 0 0 0}dl dd{margin:6px 0 0 1.5em}strong{font-weight:bold}strong strong{font-weight:normal}em,cite{font-style:italic}em em,cite cite{font-style:normal}abbr{cursor:help}acronym{text-transform:uppercase;border-bottom:1px dashed #666;cursor:help}big{font-size:120%}small,sup,sub{font-size:80%}sup{vertical-align:baseline;position:relative;bottom:0.3em}sub{vertical-align:baseline;position:relative;top:0.3em}address{font-style:italic;margin:0 0 21px 0}li address,dd address{margin:0}blockquote{margin:0 2.5em;font-style:normal}blockquote em,blockquote cite{font-style:italic}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}a{cursor:pointer}a img{border:none}pre{overflow:auto;font:.9em Monaco,monospace,Courier,"Courier New";line-height:21px;margin-bottom:21px;padding:9px}code{font:.9em Monaco,monospace,Courier,"Courier New"}pre code{font-size:1em}ins,dfn{font-style:italic;text-decoration:none;border-bottom:1px solid #666}del,s,strike{text-decoration:line-through}object{margin-bottom:21px}input,textarea{font-size:1em;padding:3px}input[type="submit"]{cursor:pointer}:focus{outline:none}form label{cursor:pointer}option{padding:1px 3px}table{border-collapse:collapse;border-spacing:0;margin-bottom:21px}th,td{text-align:left}hr{height:1px;margin-bottom:21px;background:#333}img.wp-smiley{max-height:12px;margin:0;padding:0;border:none}.gallery{display:block;text-align:center;margin-bottom:21px}.alignleft,.left{float:left;margin-right:15px}.alignright,.right{float:right;margin-left:15px}.aligncenter,.center{display:block;margin:0 auto 21px auto}.alignnone,.block{clear:both;margin:0 0 21px 0}.clear{clear:both}img.alignleft,img.alignright{display:inline}blockquote.alignleft,blockquote.alignright{width:33%}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/css/21px.dev.css b/wp-content/themes/hybrid/library/css/21px.dev.css
new file mode 100644
index 000000000..aa0882f16
--- /dev/null
+++ b/wp-content/themes/hybrid/library/css/21px.dev.css
@@ -0,0 +1,308 @@
+html, body, div, span, object, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, tt, var, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
+	margin: 0;
+	padding: 0;
+	vertical-align: baseline;
+	outline: none;
+	font-size: 100%;
+	background: transparent;
+	border: none;
+	text-decoration: none;
+	}
+
+article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { 
+	display: block;
+	}
+
+b, i, hr, u, center, menu, layer, s, strike, font, xmp {
+	margin: 0;
+	padding: 0;
+	vertical-align: baseline;
+	outline: none;
+	font-size: 100%;
+	font-weight: normal;
+	font-style: normal;
+	background: transparent;
+	border: none;
+	text-decoration: none;
+	}
+
+body {
+	line-height: 24px;
+	font-family: Georgia, Times, "Times New Roman", serif;
+	color: #333;
+	background: #fff;
+	}
+
+h1, h2, h3, h4, h5, h6 {
+	font-style: normal;
+	font-weight: normal;
+	margin: 0 0 21px 0;
+	}
+
+h1 {
+	font-size: 1.8em;
+	}
+
+h2 {
+	font-size: 1.7em;
+	}
+
+h3 {
+	font-size: 1.55em;
+	}
+
+h4 {
+	font-size: 1.4em;
+	}
+
+h5 {
+	font-size: 1.25em;
+	}
+
+h6 {
+	font-size: 1.1em;
+	}
+
+p {
+	margin: 0 0 21px 0;
+	}
+
+ol, ul {
+	list-style: none;
+	}
+
+ul {
+	list-style: disc;
+	margin: 0 0 21px 2.5em;
+	}
+
+ol {
+	list-style-type: decimal;
+	margin: 0 0 21px 3em;
+	}
+
+ol ol {
+	list-style: upper-roman;
+	}
+
+ol ol ol {
+	list-style: lower-roman;
+	}
+
+ol ol ol ol {
+	list-style: upper-alpha;
+	}
+
+ol ol ol ol ol {
+	list-style: lower-alpha;
+	}
+
+ul ul, ol ol, ul ol, ol ul {
+	margin-bottom: 0;
+	}
+
+dl {
+	margin: 0 0 18px 3px;
+	}
+
+dl dt {
+	font-weight: bold;
+	margin: 12px 0 0 0;
+	}
+
+dl dd {
+	margin: 6px 0 0 1.5em;
+	}
+
+strong {
+	font-weight: bold;
+	}
+
+strong strong {
+	font-weight: normal;
+	}
+
+em, cite {
+	font-style: italic;
+	}
+
+em em, cite cite {
+	font-style: normal;
+	}
+
+abbr {
+	cursor: help;
+	}
+
+acronym {
+	text-transform: uppercase;
+	border-bottom: 1px dashed #666;
+	cursor: help;
+	}
+
+big {
+	font-size: 120%;
+	}
+
+small, sup, sub {
+	font-size: 80%;
+	}
+
+sup {
+	vertical-align: baseline;
+	position: relative;
+	bottom: 0.3em;
+	}
+
+sub {
+	vertical-align: baseline;
+	position: relative;
+	top: 0.3em;
+	}
+
+address {
+	font-style: italic;
+	margin: 0 0 21px 0;
+	}
+
+li address, dd address {
+	margin: 0;
+	}
+
+blockquote {
+	margin: 0 2.5em;
+	font-style: normal;
+	}
+
+blockquote em, blockquote cite {
+	font-style: italic;
+	}
+
+blockquote, q {
+	quotes: none;
+	}
+
+blockquote:before, blockquote:after, q:before, q:after {
+	content: '';
+	content: none;
+	}
+
+a {
+	cursor: pointer;
+	}
+
+a img {
+	border: none;
+	}
+
+pre {
+	overflow: auto;
+	font: .9em Monaco, monospace, Courier, "Courier New";
+	line-height: 21px;
+	margin-bottom: 21px;
+	padding: 9px;
+	}
+
+code {
+	font: .9em Monaco, monospace, Courier, "Courier New";
+	}
+
+pre code {
+	font-size: 1em;
+	}
+
+ins, dfn {
+	font-style: italic;
+	text-decoration: none;
+	border-bottom: 1px solid #666;
+	}
+
+del, s, strike {
+	text-decoration: line-through;
+	}
+
+object {
+	margin-bottom: 21px;
+	}
+
+input, textarea {
+	font-size: 1em;
+	padding: 3px;
+	}
+
+input[type="submit"] {
+	cursor: pointer;
+	}
+
+:focus {
+	outline: none;
+	}
+
+form label {
+	cursor: pointer;
+	}
+
+option {
+	padding: 1px 3px;
+	}
+
+table {
+	border-collapse: collapse;
+	border-spacing: 0;
+	margin-bottom: 21px;
+	}
+
+th, td {
+	text-align: left;
+	}
+
+hr {
+	height: 1px;
+	margin-bottom: 21px;
+	background: #333;
+	}
+
+img.wp-smiley {
+	max-height: 12px;
+	margin: 0;
+	padding: 0;
+	border: none;
+	}
+
+.gallery {
+	display: block;
+	text-align: center;
+	margin-bottom: 21px;
+	}
+
+.alignleft, .left {
+	float: left;
+	margin-right: 15px;
+	}
+
+.alignright, .right {
+	float: right;
+	margin-left: 15px;
+	}
+
+.aligncenter, .center {
+	display: block;
+	margin: 0 auto 21px auto;
+	}
+
+.alignnone, .block {
+	clear: both;
+	margin: 0 0 21px 0;
+	}
+
+.clear {
+	clear: both;
+	}
+
+img.alignleft, img.alignright {
+	display: inline;
+	}
+
+blockquote.alignleft, blockquote.alignright {
+	width: 33%;
+	}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/css/22px.css b/wp-content/themes/hybrid/library/css/22px.css
index 396f362d2..a5ae1b727 100644
--- a/wp-content/themes/hybrid/library/css/22px.css
+++ b/wp-content/themes/hybrid/library/css/22px.css
@@ -1 +1 @@
-html,body,div,span,object,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,tt,var,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;vertical-align:baseline;outline:none;font-size:100%;background:transparent;border:none;text-decoration:none}b,i,hr,u,center,menu,layer,s,strike,font,xmp{margin:0;padding:0;vertical-align:baseline;outline:none;font-size:100%;font-weight:normal;font-style:normal;background:transparent;border:none;text-decoration:none}font{color:#333}center{text-align:left}body{line-height:22px;font-family:Georgia,Times,"Times New Roman",serif;color:#333;background:#fff}h1,h2,h3,h4,h5,h6{font-style:normal;font-weight:normal;margin:0 0 22px 0}h1{font-size:1.8em}h2{font-size:1.7em}h3{font-size:1.55em;}h4{font-size:1.4em}h5{font-size:1.25em}h6{font-size:1.1em}p{margin:0 0 22px 0}ol,ul{list-style:none}ul{list-style:disc;margin:0 0 22px 2.5em}ol{list-style-type:decimal;margin:0 0 22px 3em}ol ol{list-style:upper-roman}ol ol ol{list-style:lower-roman}ol ol ol ol{list-style:upper-alpha}ol ol ol ol ol{list-style:lower-alpha}ul ul,ol ol,ul ol,ol ul{margin-bottom:0}dl{margin:0 0 22px 5px}dl dt{font-weight:bold;margin:10px 0 0 0}dl dd{margin:5px 0 0 1.5em}strong{font-weight:bold}strong strong{font-weight:normal}em,cite{font-style:italic}em em,cite cite{font-style:normal}abbr{cursor:help}acronym{text-transform:uppercase;border-bottom:1px dashed #666;cursor:help}big{font-size:120%}small,sup,sub{font-size:80%}sup{vertical-align:baseline;position:relative;bottom:0.3em}sub{vertical-align:baseline;position:relative;top:0.3em}address{font-style:italic;margin:0 0 22px 0}li address,dd address{margin:0}blockquote{margin:0 22px;font-style:normal}blockquote em,blockquote cite{font-style:italic}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}a{cursor:pointer}a img{border:none}pre{overflow:auto;font:.9em Monaco,monospace,Courier,"Courier New";line-height:22px;margin-bottom:22px;padding:10px}code{font:.9em Monaco,monospace,Courier,"Courier New"}pre code{font-size:1em}ins,dfn{font-style:italic;text-decoration:none;border-bottom:1px solid #666}del{text-decoration:line-through}object{margin-bottom:22px}input,textarea{font-size:1em;font-family:Georgia,Times,"Times New Roman",serif;padding:3px}:focus{outline:none}form label{cursor:pointer}option{padding:1px 2px}table{border-collapse:collapse;border-spacing:0;margin-bottom:22px}th,td{text-align:left}hr{margin-bottom:22px}img.wp-smiley{max-height:12px;margin:0;padding:0;border:none}.gallery{display:block;text-align:center;margin-bottom:22px !important}.alignleft,.left{float:left;margin-right:15px}.alignright,.right{float:right;margin-left:15px}.aligncenter,.center{display:block;margin:0 auto 22px auto}.alignnone,.block{clear:both;margin:0 0 22px 0}.clear{clear:both}img.alignleft,img.alignright{display:inline}blockquote.alignleft,blockquote .alignright{width:33%}
\ No newline at end of file
+html,body,div,span,object,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,tt,var,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video{margin:0;padding:0;vertical-align:baseline;outline:none;font-size:100%;background:transparent;border:none;text-decoration:none}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}b,i,hr,u,center,menu,layer,s,strike,font,xmp{margin:0;padding:0;vertical-align:baseline;outline:none;font-size:100%;font-weight:normal;font-style:normal;background:transparent;border:none;text-decoration:none}body{line-height:22px;font-family:Georgia,Times,"Times New Roman",serif;color:#333;background:#fff}h1,h2,h3,h4,h5,h6{font-style:normal;font-weight:normal;margin:0 0 22px 0}h1{font-size:1.8em}h2{font-size:1.7em}h3{font-size:1.55em}h4{font-size:1.4em}h5{font-size:1.25em}h6{font-size:1.1em}p{margin:0 0 22px 0}ol,ul{list-style:none}ul{list-style:disc;margin:0 0 22px 2.5em}ol{list-style-type:decimal;margin:0 0 22px 3em}ol ol{list-style:upper-roman}ol ol ol{list-style:lower-roman}ol ol ol ol{list-style:upper-alpha}ol ol ol ol ol{list-style:lower-alpha}ul ul,ol ol,ul ol,ol ul{margin-bottom:0}dl{margin:0 0 22px 5px}dl dt{font-weight:bold;margin:10px 0 0 0}dl dd{margin:5px 0 0 1.5em}strong{font-weight:bold}strong strong{font-weight:normal}em,cite{font-style:italic}em em,cite cite{font-style:normal}abbr{cursor:help}acronym{text-transform:uppercase;border-bottom:1px dashed #666;cursor:help}big{font-size:120%}small,sup,sub{font-size:80%}sup{vertical-align:baseline;position:relative;bottom:0.3em}sub{vertical-align:baseline;position:relative;top:0.3em}address{font-style:italic;margin:0 0 22px 0}li address,dd address{margin:0}blockquote{margin:0 22px;font-style:normal}blockquote em,blockquote cite{font-style:italic}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}a{cursor:pointer}a img{border:none}pre{overflow:auto;font:.9em Monaco,monospace,Courier,"Courier New";line-height:22px;margin-bottom:22px;padding:10px}code{font:.9em Monaco,monospace,Courier,"Courier New"}pre code{font-size:1em}ins,dfn{font-style:italic;text-decoration:none;border-bottom:1px solid #666}del,s,strike{text-decoration:line-through}object{margin-bottom:22px}input,textarea{font-size:1em;padding:3px}input[type="submit"]{cursor:pointer}:focus{outline:none}form label{cursor:pointer}option{padding:1px 2px}table{border-collapse:collapse;border-spacing:0;margin-bottom:22px}th,td{text-align:left}hr{height:1px;margin-bottom:22px;background:#333}img.wp-smiley{max-height:12px;margin:0;padding:0;border:none}.gallery{display:block;text-align:center;margin-bottom:22px}.alignleft,.left{float:left;margin-right:15px}.alignright,.right{float:right;margin-left:15px}.aligncenter,.center{display:block;margin:0 auto 22px auto}.alignnone,.block{clear:both;margin:0 0 22px 0}.clear{clear:both}img.alignleft,img.alignright{display:inline}blockquote.alignleft,blockquote.alignright{width:33%}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/css/22px.dev.css b/wp-content/themes/hybrid/library/css/22px.dev.css
new file mode 100644
index 000000000..706538121
--- /dev/null
+++ b/wp-content/themes/hybrid/library/css/22px.dev.css
@@ -0,0 +1,308 @@
+html, body, div, span, object, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, tt, var, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
+	margin: 0;
+	padding: 0;
+	vertical-align: baseline;
+	outline: none;
+	font-size: 100%;
+	background: transparent;
+	border: none;
+	text-decoration: none;
+	}
+
+article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { 
+	display: block;
+	}
+
+b, i, hr, u, center, menu, layer, s, strike, font, xmp {
+	margin: 0;
+	padding: 0;
+	vertical-align: baseline;
+	outline: none;
+	font-size: 100%;
+	font-weight: normal;
+	font-style: normal;
+	background: transparent;
+	border: none;
+	text-decoration: none;
+	}
+
+body {
+	line-height: 22px;
+	font-family: Georgia, Times, "Times New Roman", serif;
+	color: #333;
+	background: #fff;
+	}
+
+h1, h2, h3, h4, h5, h6 {
+	font-style: normal;
+	font-weight: normal;
+	margin: 0 0 22px 0;
+	}
+
+h1 {
+	font-size: 1.8em;
+	}
+
+h2 {
+	font-size: 1.7em;
+	}
+
+h3 {
+	font-size: 1.55em;
+	}
+
+h4 {
+	font-size: 1.4em;
+	}
+
+h5 {
+	font-size: 1.25em;
+	}
+
+h6 {
+	font-size: 1.1em;
+	}
+
+p {
+	margin: 0 0 22px 0;
+	}
+
+ol, ul {
+	list-style: none;
+	}
+
+ul {
+	list-style: disc;
+	margin: 0 0 22px 2.5em;
+	}
+
+ol {
+	list-style-type: decimal;
+	margin: 0 0 22px 3em;
+	}
+
+ol ol {
+	list-style: upper-roman;
+	}
+
+ol ol ol {
+	list-style: lower-roman;
+	}
+
+ol ol ol ol {
+	list-style: upper-alpha;
+	}
+
+ol ol ol ol ol {
+	list-style: lower-alpha;
+	}
+
+ul ul, ol ol, ul ol, ol ul {
+	margin-bottom: 0;
+	}
+
+dl {
+	margin: 0 0 22px 5px;
+	}
+
+dl dt {
+	font-weight: bold;
+	margin: 10px 0 0 0;
+	}
+
+dl dd {
+	margin: 5px 0 0 1.5em;
+	}
+
+strong {
+	font-weight: bold;
+	}
+
+strong strong {
+	font-weight: normal;
+	}
+
+em, cite {
+	font-style: italic;
+	}
+
+em em, cite cite {
+	font-style: normal;
+	}
+
+abbr {
+	cursor: help;
+	}
+
+acronym {
+	text-transform: uppercase;
+	border-bottom: 1px dashed #666;
+	cursor: help;
+	}
+
+big {
+	font-size: 120%;
+	}
+
+small, sup, sub {
+	font-size: 80%;
+	}
+
+sup {
+	vertical-align: baseline;
+	position: relative;
+	bottom: 0.3em;
+	}
+
+sub {
+	vertical-align: baseline;
+	position: relative;
+	top: 0.3em;
+	}
+
+address {
+	font-style: italic;
+	margin: 0 0 22px 0;
+	}
+
+li address, dd address {
+	margin: 0;
+	}
+
+blockquote {
+	margin: 0 22px;
+	font-style: normal;
+	}
+
+blockquote em, blockquote cite {
+	font-style: italic;
+	}
+
+blockquote, q {
+	quotes: none;
+	}
+
+blockquote:before, blockquote:after, q:before, q:after {
+	content: '';
+	content: none;
+	}
+
+a {
+	cursor: pointer;
+	}
+
+a img {
+	border: none;
+	}
+
+pre {
+	overflow: auto;
+	font: .9em Monaco, monospace, Courier, "Courier New";
+	line-height: 22px;
+	margin-bottom: 22px;
+	padding: 10px;
+	}
+
+code {
+	font: .9em Monaco, monospace, Courier, "Courier New";
+	}
+
+pre code {
+	font-size: 1em;
+	}
+
+ins, dfn {
+	font-style: italic;
+	text-decoration: none;
+	border-bottom: 1px solid #666;
+	}
+
+del, s, strike {
+	text-decoration: line-through;
+	}
+
+object {
+	margin-bottom: 22px;
+	}
+
+input, textarea {
+	font-size: 1em;
+	padding: 3px;
+	}
+
+input[type="submit"] {
+	cursor: pointer;
+	}
+
+:focus {
+	outline: none;
+	}
+
+form label {
+	cursor: pointer;
+	}
+
+option {
+	padding: 1px 2px;
+	}
+
+table {
+	border-collapse: collapse;
+	border-spacing: 0;
+	margin-bottom: 22px;
+	}
+
+th, td {
+	text-align: left;
+	}
+
+hr {
+	height: 1px;
+	margin-bottom: 22px;
+	background: #333;
+	}
+
+img.wp-smiley {
+	max-height: 12px;
+	margin: 0;
+	padding: 0;
+	border: none;
+	}
+
+.gallery {
+	display: block;
+	text-align: center;
+	margin-bottom: 22px;
+	}
+
+.alignleft, .left {
+	float: left;
+	margin-right: 15px;
+	}
+
+.alignright, .right {
+	float: right;
+	margin-left: 15px;
+	}
+
+.aligncenter, .center {
+	display: block;
+	margin: 0 auto 22px auto;
+	}
+
+.alignnone, .block {
+	clear: both;
+	margin: 0 0 22px 0;
+	}
+
+.clear {
+	clear: both;
+	}
+
+img.alignleft, img.alignright {
+	display: inline;
+	}
+
+blockquote.alignleft, blockquote.alignright {
+	width: 33%;
+	}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/css/24px.css b/wp-content/themes/hybrid/library/css/24px.css
index ede5585f3..e3f031028 100644
--- a/wp-content/themes/hybrid/library/css/24px.css
+++ b/wp-content/themes/hybrid/library/css/24px.css
@@ -1 +1 @@
-html,body,div,span,object,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,tt,var,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;vertical-align:baseline;outline:none;font-size:100%;background:transparent;border:none;text-decoration:none}b,i,hr,u,center,menu,layer,s,strike,font,xmp{margin:0;padding:0;vertical-align:baseline;outline:none;font-size:100%;font-weight:normal;font-style:normal;background:transparent;border:none;text-decoration:none}font{color:#333}center{text-align:left}body{line-height:24px;font-family:Georgia,Times,"Times New Roman",serif;color:#333;background:#fff}h1,h2,h3,h4,h5,h6{font-style:normal;font-weight:normal;margin:0 0 24px 0}h1{font-size:1.8em}h2{font-size:1.7em}h3{font-size:1.55em}h4{font-size:1.4em}h5{font-size:1.25em}h6{font-size:1.1em}p{margin:0 0 24px 0}ol,ul{list-style:none}ul{list-style:disc;margin:0 0 24px 2.5em}ol{list-style-type:decimal;margin:0 0 24px 3em}ol ol{list-style:upper-roman}ol ol ol{list-style:lower-roman}ol ol ol ol{list-style:upper-alpha}ol ol ol ol ol{list-style:lower-alpha}ul ul,ol ol,ul ol,ol ul{margin-bottom:0}dl{margin:0 0 24px 6px}dl dt{font-weight:bold;margin:12px 0 0 0}dl dd{margin:6px 0 0 1.5em}strong{font-weight:bold}strong strong{font-weight:normal}em,cite{font-style:italic}em em,cite cite{font-style:normal}abbr{cursor:help}acronym{text-transform:uppercase;border-bottom:1px dashed #666;cursor:help}big{font-size:120%}small,sup,sub{font-size:80%}sup{vertical-align:baseline;position:relative;bottom:0.3em}sub{vertical-align:baseline;position:relative;top:0.3em}address{font-style:italic;margin:0 0 24px 0}li address,dd address{margin:0}blockquote{margin:0 24px;font-style:normal}blockquote em,blockquote cite{font-style:italic}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}a{cursor:pointer}a img{border:none}pre{overflow:auto;font:.9em Monaco,monospace,Courier,"Courier New";line-height:24px;margin-bottom:24px;padding:12px}code{font:.9em Monaco,monospace,Courier,"Courier New"}pre code{font-size:1em}ins,dfn{font-style:italic;text-decoration:none;border-bottom:1px solid #666}del{text-decoration:line-through}object{margin-bottom:24px}input,textarea{font-size:1em;font-family:Georgia,Times,"Times New Roman",serif;padding:3px}:focus{outline:none}form label{cursor:pointer}option{padding:1px 2px}table{border-collapse:collapse;border-spacing:0;margin-bottom:24px}th,td{text-align:left}hr{margin-bottom:24px}img.wp-smiley{max-height:12px;margin:0;padding:0;border:none}.gallery{display:block;text-align:center;margin-bottom:24px !important}.alignleft,.left{float:left;margin-right:18px}.alignright,.right{float:right;margin-left:18px}.aligncenter,.center{display:block;margin:0 auto 24px auto}.alignnone,.block{clear:both;margin:0 0 24px 0}.clear{clear:both}img.alignleft,img.alignright{display:inline}blockquote.alignleft,blockquote .alignright{width:33%}
\ No newline at end of file
+html,body,div,span,object,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,tt,var,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video{margin:0;padding:0;vertical-align:baseline;outline:none;font-size:100%;background:transparent;border:none;text-decoration:none}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}b,i,hr,u,center,menu,layer,s,strike,font,xmp{margin:0;padding:0;vertical-align:baseline;outline:none;font-size:100%;font-weight:normal;font-style:normal;background:transparent;border:none;text-decoration:none}body{line-height:24px;font-family:Georgia,Times,"Times New Roman",serif;color:#333;background:#fff}h1,h2,h3,h4,h5,h6{font-style:normal;font-weight:normal;margin:0 0 24px 0}h1{font-size:1.8em}h2{font-size:1.7em}h3{font-size:1.55em}h4{font-size:1.4em}h5{font-size:1.25em}h6{font-size:1.1em}p{margin:0 0 24px 0}ol,ul{list-style:none}ul{list-style:disc;margin:0 0 24px 2.5em}ol{list-style-type:decimal;margin:0 0 24px 3em}ol ol{list-style:upper-roman}ol ol ol{list-style:lower-roman}ol ol ol ol{list-style:upper-alpha}ol ol ol ol ol{list-style:lower-alpha}ul ul,ol ol,ul ol,ol ul{margin-bottom:0}dl{margin:0 0 24px 6px}dl dt{font-weight:bold;margin:12px 0 0 0}dl dd{margin:6px 0 0 1.5em}strong{font-weight:bold}strong strong{font-weight:normal}em,cite{font-style:italic}em em,cite cite{font-style:normal}abbr{cursor:help}acronym{text-transform:uppercase;border-bottom:1px dashed #666;cursor:help}big{font-size:120%}small,sup,sub{font-size:80%}sup{vertical-align:baseline;position:relative;bottom:0.3em}sub{vertical-align:baseline;position:relative;top:0.3em}address{font-style:italic;margin:0 0 24px 0}li address,dd address{margin:0}blockquote{margin:0 24px;font-style:normal}blockquote em,blockquote cite{font-style:italic}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}a{cursor:pointer}a img{border:none}pre{overflow:auto;font:.9em Monaco,monospace,Courier,"Courier New";line-height:24px;margin-bottom:24px;padding:12px}code{font:.9em Monaco,monospace,Courier,"Courier New"}pre code{font-size:1em}ins,dfn{font-style:italic;text-decoration:none;border-bottom:1px solid #666}del,s,strike{text-decoration:line-through}object{margin-bottom:24px}input,textarea{font-size:1em;padding:3px}input[type="submit"]{cursor:pointer}:focus{outline:none}form label{cursor:pointer}option{padding:1px 2px}table{border-collapse:collapse;border-spacing:0;margin-bottom:24px}th,td{text-align:left}hr{height:1px;margin-bottom:24px;background:#333}img.wp-smiley{max-height:12px;margin:0;padding:0;border:none}.gallery{display:block;text-align:center;margin-bottom:24px}.alignleft,.left{float:left;margin-right:18px}.alignright,.right{float:right;margin-left:18px}.aligncenter,.center{display:block;margin:0 auto 24px auto}.alignnone,.block{clear:both;margin:0 0 24px 0}.clear{clear:both}img.alignleft,img.alignright{display:inline}blockquote.alignleft,blockquote.alignright{width:33%}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/css/24px.dev.css b/wp-content/themes/hybrid/library/css/24px.dev.css
new file mode 100644
index 000000000..9ebc27e23
--- /dev/null
+++ b/wp-content/themes/hybrid/library/css/24px.dev.css
@@ -0,0 +1,308 @@
+html, body, div, span, object, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, tt, var, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
+	margin: 0;
+	padding: 0;
+	vertical-align: baseline;
+	outline: none;
+	font-size: 100%;
+	background: transparent;
+	border: none;
+	text-decoration: none;
+	}
+
+article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { 
+	display: block;
+	}
+
+b, i, hr, u, center, menu, layer, s, strike, font, xmp {
+	margin: 0;
+	padding: 0;
+	vertical-align: baseline;
+	outline: none;
+	font-size: 100%;
+	font-weight: normal;
+	font-style: normal;
+	background: transparent;
+	border: none;
+	text-decoration: none;
+	}
+
+body {
+	line-height: 24px;
+	font-family: Georgia, Times, "Times New Roman", serif;
+	color: #333;
+	background: #fff;
+	}
+
+h1, h2, h3, h4, h5, h6 {
+	font-style: normal;
+	font-weight: normal;
+	margin: 0 0 24px 0;
+	}
+
+h1 {
+	font-size: 1.8em;
+	}
+
+h2 {
+	font-size: 1.7em;
+	}
+
+h3 {
+	font-size: 1.55em;
+	}
+
+h4 {
+	font-size: 1.4em;
+	}
+
+h5 {
+	font-size: 1.25em;
+	}
+
+h6 {
+	font-size: 1.1em;
+	}
+
+p {
+	margin: 0 0 24px 0;
+	}
+
+ol, ul {
+	list-style: none;
+	}
+
+ul {
+	list-style: disc;
+	margin: 0 0 24px 2.5em;
+	}
+
+ol {
+	list-style-type: decimal;
+	margin: 0 0 24px 3em;
+	}
+
+ol ol {
+	list-style: upper-roman;
+	}
+
+ol ol ol {
+	list-style: lower-roman;
+	}
+
+ol ol ol ol {
+	list-style: upper-alpha;
+	}
+
+ol ol ol ol ol {
+	list-style: lower-alpha;
+	}
+
+ul ul, ol ol, ul ol, ol ul {
+	margin-bottom: 0;
+	}
+
+dl {
+	margin: 0 0 24px 6px;
+	}
+
+dl dt {
+	font-weight: bold;
+	margin: 12px 0 0 0;
+	}
+
+dl dd {
+	margin: 6px 0 0 1.5em;
+	}
+
+strong {
+	font-weight: bold;
+	}
+
+strong strong {
+	font-weight: normal;
+	}
+
+em, cite {
+	font-style: italic;
+	}
+
+em em, cite cite {
+	font-style: normal;
+	}
+
+abbr {
+	cursor: help;
+	}
+
+acronym {
+	text-transform: uppercase;
+	border-bottom: 1px dashed #666;
+	cursor: help;
+	}
+
+big {
+	font-size: 120%;
+	}
+
+small, sup, sub {
+	font-size: 80%;
+	}
+
+sup {
+	vertical-align: baseline;
+	position: relative;
+	bottom: 0.3em;
+	}
+
+sub {
+	vertical-align: baseline;
+	position: relative;
+	top: 0.3em;
+	}
+
+address {
+	font-style: italic;
+	margin: 0 0 24px 0;
+	}
+
+li address, dd address {
+	margin: 0;
+	}
+
+blockquote {
+	margin: 0 24px;
+	font-style: normal;
+	}
+
+blockquote em, blockquote cite {
+	font-style: italic;
+	}
+
+blockquote, q {
+	quotes: none;
+	}
+
+blockquote:before, blockquote:after, q:before, q:after {
+	content: '';
+	content: none;
+	}
+
+a {
+	cursor: pointer;
+	}
+
+a img {
+	border: none;
+	}
+
+pre {
+	overflow: auto;
+	font: .9em Monaco, monospace, Courier, "Courier New";
+	line-height: 24px;
+	margin-bottom: 24px;
+	padding: 12px;
+	}
+
+code {
+	font: .9em Monaco, monospace, Courier, "Courier New";
+	}
+
+pre code {
+	font-size: 1em;
+	}
+
+ins, dfn {
+	font-style: italic;
+	text-decoration: none;
+	border-bottom: 1px solid #666;
+	}
+
+del, s, strike {
+	text-decoration: line-through;
+	}
+
+object {
+	margin-bottom: 24px;
+	}
+
+input, textarea {
+	font-size: 1em;
+	padding: 3px;
+	}
+
+input[type="submit"] {
+	cursor: pointer;
+	}
+
+:focus {
+	outline: none;
+	}
+
+form label {
+	cursor: pointer;
+	}
+
+option {
+	padding: 1px 2px;
+	}
+
+table {
+	border-collapse: collapse;
+	border-spacing: 0;
+	margin-bottom: 24px;
+	}
+
+th, td {
+	text-align: left;
+	}
+
+hr {
+	height: 1px;
+	margin-bottom: 24px;
+	background: #333;
+	}
+
+img.wp-smiley {
+	max-height: 12px;
+	margin: 0;
+	padding: 0;
+	border: none;
+	}
+
+.gallery {
+	display: block;
+	text-align: center;
+	margin-bottom: 24px;
+	}
+
+.alignleft, .left {
+	float: left;
+	margin-right: 18px;
+	}
+
+.alignright, .right {
+	float: right;
+	margin-left: 18px;
+	}
+
+.aligncenter, .center {
+	display: block;
+	margin: 0 auto 24px auto;
+	}
+
+.alignnone, .block {
+	clear: both;
+	margin: 0 0 24px 0;
+	}
+
+.clear {
+	clear: both;
+	}
+
+img.alignleft, img.alignright {
+	display: inline;
+	}
+
+blockquote.alignleft, blockquote.alignright {
+	width: 33%;
+	}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/css/25px.css b/wp-content/themes/hybrid/library/css/25px.css
index 5adfb4e67..515530aec 100644
--- a/wp-content/themes/hybrid/library/css/25px.css
+++ b/wp-content/themes/hybrid/library/css/25px.css
@@ -1 +1 @@
-html,body,div,span,object,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,tt,var,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;vertical-align:baseline;outline:none;font-size:100%;background:transparent;border:none;text-decoration:none}b,i,hr,u,center,menu,layer,s,strike,font,xmp{margin:0;padding:0;vertical-align:baseline;outline:none;font-size:100%;font-weight:normal;font-style:normal;background:transparent;border:none;text-decoration:none}font{color:#333}center{text-align:left}body{line-height:25px;font-family:Georgia,Times,"Times New Roman",serif;color:#333;background:#fff}h1,h2,h3,h4,h5,h6{font-style:normal;font-weight:normal;margin:0 0 25px 0}h1{font-size:1.8em}h2{font-size:1.7em}h3{font-size:1.55em;}h4{font-size:1.4em}h5{font-size:1.25em}h6{font-size:1.1em}p{margin:0 0 25px 0}ol,ul{list-style:none}ul{list-style:disc;margin:0 0 25px 2.5em}ol{list-style-type:decimal;margin:0 0 25px 3em}ol ol{list-style:upper-roman}ol ol ol{list-style:lower-roman}ol ol ol ol{list-style:upper-alpha}ol ol ol ol ol{list-style:lower-alpha}ul ul,ol ol,ul ol,ol ul{margin-bottom:0}dl{margin:0 0 25px 5px}dl dt{font-weight:bold;margin:10px 0 0 0}dl dd{margin:5px 0 0 1.5em}strong{font-weight:bold}strong strong{font-weight:normal}em,cite{font-style:italic}em em,cite cite{font-style:normal}abbr{cursor:help}acronym{text-transform:uppercase;border-bottom:1px dashed #666;cursor:help}big{font-size:120%}small,sup,sub{font-size:80%}sup{vertical-align:baseline;position:relative;bottom:0.3em}sub{vertical-align:baseline;position:relative;top:0.3em}address{font-style:italic;margin:0 0 25px 0}li address,dd address{margin:0}blockquote{margin:0 25px;font-style:normal}blockquote em,blockquote cite{font-style:italic}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}a{cursor:pointer}a img{border:none}pre{overflow:auto;font:.9em Monaco,monospace,Courier,"Courier New";line-height:25px;margin-bottom:25px;padding:10px}code{font:.9em Monaco,monospace,Courier,"Courier New"}pre code{font-size:1em}ins,dfn{font-style:italic;text-decoration:none;border-bottom:1px solid #666}del{text-decoration:line-through}object{margin-bottom:25px}input,textarea{font-size:1em;font-family:Georgia,Times,"Times New Roman",serif;padding:3px}:focus{outline:none}form label{cursor:pointer}option{padding:1px 2px}table{border-collapse:collapse;border-spacing:0;margin-bottom:25px}th,td{text-align:left}hr{margin-bottom:25px}img.wp-smiley{max-height:12px;margin:0;padding:0;border:none}.gallery{display:block;text-align:center;margin-bottom:25px !important}.alignleft,.left{float:left;margin-right:20px}.alignright,.right{float:right;margin-left:20px}.aligncenter,.center{display:block;margin:0 auto 25px auto}.alignnone,.block{clear:both;margin:0 0 25px 0}.clear{clear:both}img.alignleft,img.alignright{display:inline}blockquote.alignleft,blockquote .alignright{width:33%}
\ No newline at end of file
+html,body,div,span,object,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,tt,var,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video{margin:0;padding:0;vertical-align:baseline;outline:none;font-size:100%;background:transparent;border:none;text-decoration:none}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}b,i,hr,u,center,menu,layer,s,strike,font,xmp{margin:0;padding:0;vertical-align:baseline;outline:none;font-size:100%;font-weight:normal;font-style:normal;background:transparent;border:none;text-decoration:none}body{line-height:25px;font-family:Georgia,Times,"Times New Roman",serif;color:#333;background:#fff}h1,h2,h3,h4,h5,h6{font-style:normal;font-weight:normal;margin:0 0 25px 0}h1{font-size:1.8em}h2{font-size:1.7em}h3{font-size:1.55em}h4{font-size:1.4em}h5{font-size:1.25em}h6{font-size:1.1em}p{margin:0 0 25px 0}ol,ul{list-style:none}ul{list-style:disc;margin:0 0 25px 2.5em}ol{list-style-type:decimal;margin:0 0 25px 3em}ol ol{list-style:upper-roman}ol ol ol{list-style:lower-roman}ol ol ol ol{list-style:upper-alpha}ol ol ol ol ol{list-style:lower-alpha}ul ul,ol ol,ul ol,ol ul{margin-bottom:0}dl{margin:0 0 25px 5px}dl dt{font-weight:bold;margin:10px 0 0 0}dl dd{margin:5px 0 0 1.5em}strong{font-weight:bold}strong strong{font-weight:normal}em,cite{font-style:italic}em em,cite cite{font-style:normal}abbr{cursor:help}acronym{text-transform:uppercase;border-bottom:1px dashed #666;cursor:help}big{font-size:120%}small,sup,sub{font-size:80%}sup{vertical-align:baseline;position:relative;bottom:0.3em}sub{vertical-align:baseline;position:relative;top:0.3em}address{font-style:italic;margin:0 0 25px 0}li address,dd address{margin:0}blockquote{margin:0 25px;font-style:normal}blockquote em,blockquote cite{font-style:italic}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}a{cursor:pointer}a img{border:none}pre{overflow:auto;font:.9em Monaco,monospace,Courier,"Courier New";line-height:25px;margin-bottom:25px;padding:10px}code{font:.9em Monaco,monospace,Courier,"Courier New"}pre code{font-size:1em}ins,dfn{font-style:italic;text-decoration:none;border-bottom:1px solid #666}del,s,strike{text-decoration:line-through}object{margin-bottom:25px}input,textarea{font-size:1em;padding:3px}input[type="submit"]{cursor:pointer}:focus{outline:none}form label{cursor:pointer}option{padding:1px 2px}table{border-collapse:collapse;border-spacing:0;margin-bottom:25px}th,td{text-align:left}hr{height:1px;margin-bottom:25px;background:#333}img.wp-smiley{max-height:12px;margin:0;padding:0;border:none}.gallery{display:block;text-align:center;margin-bottom:25px}.alignleft,.left{float:left;margin-right:20px}.alignright,.right{float:right;margin-left:20px}.aligncenter,.center{display:block;margin:0 auto 25px auto}.alignnone,.block{clear:both;margin:0 0 25px 0}.clear{clear:both}img.alignleft,img.alignright{display:inline}blockquote.alignleft,blockquote.alignright{width:33%}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/css/25px.dev.css b/wp-content/themes/hybrid/library/css/25px.dev.css
new file mode 100644
index 000000000..e0b4fbf01
--- /dev/null
+++ b/wp-content/themes/hybrid/library/css/25px.dev.css
@@ -0,0 +1,308 @@
+html, body, div, span, object, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, tt, var, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
+	margin: 0;
+	padding: 0;
+	vertical-align: baseline;
+	outline: none;
+	font-size: 100%;
+	background: transparent;
+	border: none;
+	text-decoration: none;
+	}
+
+article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { 
+	display: block;
+	}
+
+b, i, hr, u, center, menu, layer, s, strike, font, xmp {
+	margin: 0;
+	padding: 0;
+	vertical-align: baseline;
+	outline: none;
+	font-size: 100%;
+	font-weight: normal;
+	font-style: normal;
+	background: transparent;
+	border: none;
+	text-decoration: none;
+	}
+
+body {
+	line-height: 25px;
+	font-family: Georgia, Times, "Times New Roman", serif;
+	color: #333;
+	background: #fff;
+	}
+
+h1, h2, h3, h4, h5, h6 {
+	font-style: normal;
+	font-weight: normal;
+	margin: 0 0 25px 0;
+	}
+
+h1 {
+	font-size: 1.8em;
+	}
+
+h2 {
+	font-size: 1.7em;
+	}
+
+h3 {
+	font-size: 1.55em;
+	}
+
+h4 {
+	font-size: 1.4em;
+	}
+
+h5 {
+	font-size: 1.25em;
+	}
+
+h6 {
+	font-size: 1.1em;
+	}
+
+p {
+	margin: 0 0 25px 0;
+	}
+
+ol, ul {
+	list-style: none;
+	}
+
+ul {
+	list-style: disc;
+	margin: 0 0 25px 2.5em;
+	}
+
+ol {
+	list-style-type: decimal;
+	margin: 0 0 25px 3em;
+	}
+
+ol ol {
+	list-style: upper-roman;
+	}
+
+ol ol ol {
+	list-style: lower-roman;
+	}
+
+ol ol ol ol {
+	list-style: upper-alpha;
+	}
+
+ol ol ol ol ol {
+	list-style: lower-alpha;
+	}
+
+ul ul, ol ol, ul ol, ol ul {
+	margin-bottom: 0;
+	}
+
+dl {
+	margin: 0 0 25px 5px;
+	}
+
+dl dt {
+	font-weight: bold;
+	margin: 10px 0 0 0;
+	}
+
+dl dd {
+	margin: 5px 0 0 1.5em;
+	}
+
+strong {
+	font-weight: bold;
+	}
+
+strong strong {
+	font-weight: normal;
+	}
+
+em, cite {
+	font-style: italic;
+	}
+
+em em, cite cite {
+	font-style: normal;
+	}
+
+abbr {
+	cursor: help;
+	}
+
+acronym {
+	text-transform: uppercase;
+	border-bottom: 1px dashed #666;
+	cursor: help;
+	}
+
+big {
+	font-size: 120%;
+	}
+
+small, sup, sub {
+	font-size: 80%;
+	}
+
+sup {
+	vertical-align: baseline;
+	position: relative;
+	bottom: 0.3em;
+	}
+
+sub {
+	vertical-align: baseline;
+	position: relative;
+	top: 0.3em;
+	}
+
+address {
+	font-style: italic;
+	margin: 0 0 25px 0;
+	}
+
+li address, dd address {
+	margin: 0;
+	}
+
+blockquote {
+	margin: 0 25px;
+	font-style: normal;
+	}
+
+blockquote em, blockquote cite {
+	font-style: italic;
+	}
+
+blockquote, q {
+	quotes: none;
+	}
+
+blockquote:before, blockquote:after, q:before, q:after {
+	content: '';
+	content: none;
+	}
+
+a {
+	cursor: pointer;
+	}
+
+a img {
+	border: none;
+	}
+
+pre {
+	overflow: auto;
+	font: .9em Monaco, monospace, Courier, "Courier New";
+	line-height: 25px;
+	margin-bottom: 25px;
+	padding: 10px;
+	}
+
+code {
+	font: .9em Monaco, monospace, Courier, "Courier New";
+	}
+
+pre code {
+	font-size: 1em;
+	}
+
+ins, dfn {
+	font-style: italic;
+	text-decoration: none;
+	border-bottom: 1px solid #666;
+	}
+
+del, s, strike {
+	text-decoration: line-through;
+	}
+
+object {
+	margin-bottom: 25px;
+	}
+
+input, textarea {
+	font-size: 1em;
+	padding: 3px;
+	}
+
+input[type="submit"] {
+	cursor: pointer;
+	}
+
+:focus {
+	outline: none;
+	}
+
+form label {
+	cursor: pointer;
+	}
+
+option {
+	padding: 1px 2px;
+	}
+
+table {
+	border-collapse: collapse;
+	border-spacing: 0;
+	margin-bottom: 25px;
+	}
+
+th, td {
+	text-align: left;
+	}
+
+hr {
+	height: 1px;
+	margin-bottom: 25px;
+	background: #333;
+	}
+
+img.wp-smiley {
+	max-height: 12px;
+	margin: 0;
+	padding: 0;
+	border: none;
+	}
+
+.gallery {
+	display: block;
+	text-align: center;
+	margin-bottom: 25px;
+	}
+
+.alignleft, .left {
+	float: left;
+	margin-right: 20px;
+	}
+
+.alignright, .right {
+	float: right;
+	margin-left: 20px;
+	}
+
+.aligncenter, .center {
+	display: block;
+	margin: 0 auto 25px auto;
+	}
+
+.alignnone, .block {
+	clear: both;
+	margin: 0 0 25px 0;
+	}
+
+.clear {
+	clear: both;
+	}
+
+img.alignleft, img.alignright {
+	display: inline;
+	}
+
+blockquote.alignleft, blockquote.alignright {
+	width: 33%;
+	}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/css/2c-l-fixed.css b/wp-content/themes/hybrid/library/css/2c-l-fixed.css
index 16c506237..93756950d 100644
--- a/wp-content/themes/hybrid/library/css/2c-l-fixed.css
+++ b/wp-content/themes/hybrid/library/css/2c-l-fixed.css
@@ -1,63 +1,5 @@
 /**
- * Two columns with content floated left.
- * Fixed width of 960px.
- *
- * @since 0.6
- * @package Hybrid
- * @subpackage CSS
+ * @deprecated 1.0.0 - This file is for backwards compatibility with the Hybrid parent theme.  It will
+ * be removed in a future version.
  */
-
-#body-container {
-	overflow: hidden;
-	width: 960px;
-	margin: 0 auto;
-	}
-
-#container {
-	overflow: hidden;
-	float: left;
-	width: 960px;
-	}
-
-.content {
-	overflow: hidden;
-	float: left;
-	width: 620px;
-	}
-.no-widgets .content, .no-default-widgets .content {
-	width: 960px;
-	}
-
-#primary {
-	position: relative;
-	float: right;
-	width: 300px;
-	}
-
-#secondary {
-	position: relative;
-	clear: right;
-	float: right;
-	width: 300px;
-	}
-
-#subsidiary {
-	overflow: hidden;
-	}
-
-#subsidiary .widget {
-	overflow: hidden;
-	float: left;
-	width: 300px;
-	margin: 0 20px 0 0;
-	}
-
-#footer-container {
-	clear: both;
-	overflow: hidden;
-	}
-
-#footer {
-	clear: both;
-	overflow: hidden;
-	}
\ No newline at end of file
+#body-container{overflow:hidden;width:960px;margin:0 auto}#container{overflow:hidden;float:left;width:960px}.content{overflow:hidden;float:left;width:620px}.no-widgets .content,.no-default-widgets .content{width:960px}#primary{position:relative;float:right;width:300px}#secondary{position:relative;clear:right;float:right;width:300px}#subsidiary{overflow:hidden}#subsidiary .widget{overflow:hidden;float:left;width:300px;margin:0 20px 0 0}#footer-container{clear:both;overflow:hidden}#footer{clear:both;overflow:hidden}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/css/2c-r-fixed.css b/wp-content/themes/hybrid/library/css/2c-r-fixed.css
index 06a011cda..30dabb2e4 100644
--- a/wp-content/themes/hybrid/library/css/2c-r-fixed.css
+++ b/wp-content/themes/hybrid/library/css/2c-r-fixed.css
@@ -1,61 +1,5 @@
 /**
- * Two columns with content floated right.
- * Fixed width of 960px.
- *
- * @since 0.6
- * @package Hybrid
- * @subpackage CSS
+ * @deprecated 1.0.0 - This file is for backwards compatibility with the Hybrid parent theme.  It will
+ * be removed in a future version.
  */
-
-#body-container {
-	overflow: hidden;
-	width: 960px;
-	margin: 0 auto;
-	}
-
-#container {
-	overflow: hidden;
-	float: left;
-	width: 960px;
-	}
-
-.content {
-	overflow: hidden;
-	float: right;
-	width: 620px;
-	}
-.no-widgets .content, .no-default-widgets .content {
-	width: 960px;
-	}
-
-#primary {
-	float: left;
-	width: 300px;
-	}
-
-#secondary {
-	clear: left;
-	float: left;
-	width: 300px;
-	}
-
-#subsidiary {
-	overflow: hidden;
-	}
-
-#subsidiary .widget {
-	overflow: hidden;
-	float: left;
-	width: 300px;
-	margin: 0 20px 0 0;
-	}
-
-#footer-container {
-	clear: both;
-	overflow: hidden;
-	}
-
-#footer {
-	clear: both;
-	overflow: hidden;
-	}
\ No newline at end of file
+#body-container{overflow:hidden;width:960px;margin:0 auto}#container{overflow:hidden;float:left;width:960px}.content{overflow:hidden;float:right;width:620px}.no-widgets .content,.no-default-widgets .content{width:960px}#primary{float:left;width:300px}#secondary{clear:left;float:left;width:300px}#subsidiary{overflow:hidden}#subsidiary .widget{overflow:hidden;float:left;width:300px;margin:0 20px 0 0}#footer-container{clear:both;overflow:hidden}#footer{clear:both;overflow:hidden}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/css/3c-c-fixed.css b/wp-content/themes/hybrid/library/css/3c-c-fixed.css
index f6f52b119..a0403d952 100644
--- a/wp-content/themes/hybrid/library/css/3c-c-fixed.css
+++ b/wp-content/themes/hybrid/library/css/3c-c-fixed.css
@@ -1,78 +1,5 @@
 /**
- * Holy Grail Stylesheet.
- * Creates the Holy Grail (fixed width) of three-column layouts.
- * Primary / Content / Secondary
- * Fixed width of 960px.
- *
- * @link http://www.alistapart.com/articles/holygrail
- * @author Matthew Levine
- *
- * @since 0.6
- * @package Hybrid
- * @subpackage CSS
+ * @deprecated 1.0.0 - This file is for backwards compatibility with the Hybrid parent theme.  It will
+ * be removed in a future version.
  */
-
-body {
-	min-width: 600px;      /* 2x LC width + RC width */
-	}
-#body-container {
-	overflow: hidden;
-	width: 960px;
-	margin: 0 auto;
-	}
-#container {
-	clear: both;
-	overflow: hidden;
-	padding-left: 240px;   /* LC width */
-	padding-right: 240px;  /* RC width */
-	}
-.no-widgets #container, .no-default-widgets #container {
-	width: 960px;
-	padding-left: 0;
-	padding-right: 0;
-	}
-.content, #primary, #secondary {
-	position: relative;
-	float: left;
-	}
-.content {
-	width: 100%;
-	}
-.no-widgets .content, .no-default-widgets .content {
-	width: 960px;
-	}
-#primary {
-	width: 220px;          /* LC width */
-	right: 240px;          /* LC width */
-	margin-left: -100%;
-	}
-#secondary {
-	width: 220px;          /* RC width */
-	margin-right: -240px;  /* RC width */
-	margin-left: 20px;
-	}
-
-/*** IE6 Fix ***/
-* html #secondary {
-	left: 240px;           /* RC width */
-	}
-
-#subsidiary {
-	overflow: hidden;
-	}
-
-#subsidiary .widget {
-	overflow: hidden;
-	float: left;
-	width: 300px;
-	margin: 0 20px 0 0;
-	}
-
-#footer-container {
-	clear: both;
-	overflow: hidden;
-	}
-
-#footer {
-	clear: both;
-	}
\ No newline at end of file
+body{min-width:600px}#body-container{overflow:hidden;width:960px;margin:0 auto}#primary-menu{position:relative;z-index:100}#container{position:relative;clear:both;overflow:hidden;padding-left:240px; padding-right:240px; z-index:1}.no-widgets #container,.no-default-widgets #container{width:960px;padding-left:0;padding-right:0}.content,#primary,#secondary{position:relative;float:left;z-index:1}.content{width:100%}.no-widgets .content,.no-default-widgets .content{width:960px}#primary{width:220px; right:240px; margin-left:-100%}#secondary{width:220px; margin-right:-240px; margin-left:20px}* html #secondary{left:240px}#subsidiary{overflow:hidden}#subsidiary .widget{overflow:hidden;float:left;width:300px;margin:0 20px 0 0}#footer-container{clear:both;overflow:hidden}#footer{clear:both}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/css/3c-l-fixed.css b/wp-content/themes/hybrid/library/css/3c-l-fixed.css
index 594bc31ae..abc84ce44 100644
--- a/wp-content/themes/hybrid/library/css/3c-l-fixed.css
+++ b/wp-content/themes/hybrid/library/css/3c-l-fixed.css
@@ -1,63 +1,5 @@
 /**
- * Three columns with content floated left.
- * Fixed width of 960px.
- * Content / Secondary / Primary
- *
- * @since 0.6
- * @package Hybrid
- * @subpackage CSS
+ * @deprecated 1.0.0 - This file is for backwards compatibility with the Hybrid parent theme.  It will
+ * be removed in a future version.
  */
-
-#body-container {
-	overflow: hidden;
-	width: 960px;
-	margin: 0 auto;
-	}
-
-#container {
-	overflow: hidden;
-	float: left;
-	width: 960px;
-	}
-
-.content {
-	overflow: hidden;
-	float: left;
-	width: 520px;
-	}
-.no-widgets .content, .no-default-widgets .content {
-	width: 960px;
-	}
-
-#primary {
-	overflow: hidden;
-	float: right;
-	width: 190px;
-	}
-
-#secondary {
-	overflow: hidden;
-	float: right;
-	width: 190px;
-	margin-right: 20px;
-	}
-
-#subsidiary {
-	overflow: hidden;
-	}
-
-#subsidiary .widget {
-	overflow: hidden;
-	float: left;
-	width: 300px;
-	margin: 0 20px 0 0;
-	}
-
-#footer-container {
-	clear: both;
-	overflow: hidden;
-	}
-
-#footer {
-	clear: both;
-	}
\ No newline at end of file
+#body-container{overflow:hidden;width:960px;margin:0 auto}#container{overflow:hidden;float:left;width:960px}.content{overflow:hidden;float:left;width:520px}.no-widgets .content,.no-default-widgets .content{width:960px}#primary{overflow:hidden;float:right;width:190px}#secondary{overflow:hidden;float:right;width:190px;margin-right:20px}#subsidiary{overflow:hidden}#subsidiary .widget{overflow:hidden;float:left;width:300px;margin:0 20px 0 0}#footer-container{clear:both;overflow:hidden}#footer{clear:both}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/css/3c-r-fixed.css b/wp-content/themes/hybrid/library/css/3c-r-fixed.css
index 6f02993f9..27427da93 100644
--- a/wp-content/themes/hybrid/library/css/3c-r-fixed.css
+++ b/wp-content/themes/hybrid/library/css/3c-r-fixed.css
@@ -1,63 +1,5 @@
 /**
- * Three columns with content floated right.
- * Fixed width of 960px.
- * Content / Primary / Secondary
- *
- * @since 0.6
- * @package Hybrid
- * @subpackage CSS
+ * @deprecated 1.0.0 - This file is for backwards compatibility with the Hybrid parent theme.  It will
+ * be removed in a future version.
  */
-
-#body-container {
-	overflow: hidden;
-	width: 960px;
-	margin: 0 auto;
-	}
-
-#container {
-	overflow: hidden;
-	float: left;
-	width: 960px;
-	}
-
-.content {
-	overflow: hidden;
-	float: right;
-	width: 520px;
-	}
-.no-widgets .content, .no-default-widgets .content {
-	width: 960px;
-	}
-
-#primary {
-	overflow: hidden;
-	float: left;
-	width: 190px;
-	}
-
-#secondary {
-	overflow: hidden;
-	float: left;
-	width: 190px;
-	margin-left: 20px;
-	}
-
-#subsidiary {
-	overflow: hidden;
-	}
-
-#subsidiary .widget {
-	overflow: hidden;
-	float: left;
-	width: 300px;
-	margin: 0 20px 0 0;
-	}
-
-#footer-container {
-	clear: both;
-	overflow: hidden;
-	}
-
-#footer {
-	clear: both;
-	}
\ No newline at end of file
+#body-container{overflow:hidden;width:960px;margin:0 auto}#container{overflow:hidden;float:left;width:960px}.content{overflow:hidden;float:right;width:520px}.no-widgets .content,.no-default-widgets .content{width:960px}#primary{overflow:hidden;float:left;width:190px}#secondary{overflow:hidden;float:left;width:190px;margin-left:20px}#subsidiary{overflow:hidden}#subsidiary .widget{overflow:hidden;float:left;width:300px;margin:0 20px 0 0}#footer-container{clear:both;overflow:hidden}#footer{clear:both}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/css/admin.css b/wp-content/themes/hybrid/library/css/admin.css
index 9c917a470..8e7f52bdc 100644
--- a/wp-content/themes/hybrid/library/css/admin.css
+++ b/wp-content/themes/hybrid/library/css/admin.css
@@ -1,57 +1 @@
-/* Theme settings page. */
-.form-table th {
-	width: 20%;
-	font-weight: bold;
-	}
-.metabox-holder .column-1 {
-	width: 100%;
-	}
-.metabox-holder .column-2 {
-	float: left;
-	width: 49%;
-	}
-.metabox-holder .column-3 {
-	float: right;
-	width: 49%;
-	}
-
-/* Widgets page. */
-.columns-1 {
-	}
-.columns-2 {
-	overflow: hidden;
-	float: left;
-	width: 48%;
-	}
-.columns-3 {
-	overflow: hidden;
-	float: left;
-	width: 31%;
-	margin-right: 3.5%;
-	}
-.column-last {
-	float: right;
-	margin-right: 0;
-	}
-
-.hybrid-widget-controls label {
-	font-size: 11px;
-	}
-.columns-2 input.widefat, .columns-2 select.widefat {
-	width: 99%;
-	}
-.columns-3 select.widefat {
-	width: 98.5%;
-	}
-.hybrid-widget-controls select[multiple="multiple"] {
-	width: 100%;
-	height: 5.0em !important;
-	}
-input.smallfat {
-	float: right;
-	width: 66px;
-	}
-select.smallfat {
-	float: right;
-	min-width: 66px;
-	}
\ No newline at end of file
+.appearance_page_theme-settings .side .form-table th{width:20%;font-weight:bold;text-align:left;padding-left:0}.appearance_page_theme-settings .metabox-holder .column-1{float:left;width:66%}.appearance_page_theme-settings .metabox-holder .column-2{float:right;width:32%}.appearance_page_theme-settings .metabox-holder .column-3{clear:both;width:100%}.appearance_page_theme-settings .metabox-holder textarea{width:100%}.custom-post-format-wrap,.post-layout-wrap{padding:0 5px;max-height:170px;overflow-y:auto}.hybrid-post-settings{padding-top:5px}.hybrid-post-settings p{margin-bottom:15px !important}.widgets-php .columns-1{}.widgets-php .columns-2{overflow:hidden;float:left;width:48%}.widgets-php .columns-3{overflow:hidden;float:left;width:31%;margin-right:3.5%}.widgets-php .column-last{float:right;margin-right:0}.widgets-php .hybrid-widget-controls label{font-size:11px}.widgets-php .columns-2 input.widefat,.widgets-php .columns-2 select.widefat{width:99%}.widgets-php .columns-3 select.widefat{width:98.5%}.widgets-php .hybrid-widget-controls select[multiple="multiple"]{width:100%;height:5.0em !important}.widgets-php input.smallfat{float:right;width:66px}.widgets-php select.smallfat{float:right;min-width:66px}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/css/admin.dev.css b/wp-content/themes/hybrid/library/css/admin.dev.css
new file mode 100644
index 000000000..66d3ed2d1
--- /dev/null
+++ b/wp-content/themes/hybrid/library/css/admin.dev.css
@@ -0,0 +1,76 @@
+/* Theme settings page. */
+.appearance_page_theme-settings .side .form-table th {
+	width: 20%;
+	font-weight: bold;
+	text-align: left;
+	padding-left: 0;
+	}
+.appearance_page_theme-settings .metabox-holder .column-1 {
+	float: left;
+	width: 66%;
+	}
+.appearance_page_theme-settings .metabox-holder .column-2 {
+	float: right;
+	width: 32%;
+	}
+.appearance_page_theme-settings .metabox-holder .column-3 {
+	clear: both;
+	width: 100%;
+	}
+.appearance_page_theme-settings .metabox-holder textarea {
+	width: 100%;
+	}
+
+/* Post edit screen. */
+.custom-post-format-wrap, .post-layout-wrap {
+	padding: 0 5px;
+	max-height: 170px;
+	overflow-y: auto;
+	}
+.hybrid-post-settings {
+	padding-top: 5px;
+	}
+.hybrid-post-settings p {
+	margin-bottom: 15px !important;
+	}
+
+/* Widgets page. */
+.widgets-php .columns-1 {
+	}
+.widgets-php .columns-2 {
+	overflow: hidden;
+	float: left;
+	width: 48%;
+	}
+.widgets-php .columns-3 {
+	overflow: hidden;
+	float: left;
+	width: 31%;
+	margin-right: 3.5%;
+	}
+.widgets-php .column-last {
+	float: right;
+	margin-right: 0;
+	}
+
+.widgets-php .hybrid-widget-controls label {
+	font-size: 11px;
+	}
+.widgets-php .columns-2 input.widefat, .widgets-php .columns-2 select.widefat {
+	width: 99%;
+	}
+.widgets-php .columns-3 select.widefat {
+	width: 98.5%;
+	}
+.widgets-php .hybrid-widget-controls select[multiple="multiple"] {
+	width: 100%;
+	height: 5.0em !important;
+	}
+.widgets-php input.smallfat {
+	float: right;
+	width: 66px;
+	}
+.widgets-php select.smallfat {
+	float: right;
+	min-width: 66px;
+	}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/css/drop-downs.css b/wp-content/themes/hybrid/library/css/drop-downs.css
index f1f8e37ab..fd05c4689 100644
--- a/wp-content/themes/hybrid/library/css/drop-downs.css
+++ b/wp-content/themes/hybrid/library/css/drop-downs.css
@@ -1,61 +1 @@
-/**
- * Dropdowns Stylesheet
- * Sets up some default dropdown menu styles
- * Style rules for both the page and category menus
- *
- * @since 0.5
- * @package Hybrid
- * @subpackage CSS
- */
-
-/* @deprecated 0.8 Default page menu styles */
-#page-nav ul{margin:0;padding:0;list-style:none}#page-nav ul{line-height:1.0}#page-nav .menu ul{position:absolute;top:-999em;width:10em}#page-nav ul ul li{width:100%}#page-nav li:hover{visibility:inherit}#page-nav li{float:left;position:relative}#page-nav a{display:block;position:relative}#page-nav li:hover ul,li.sfHover ul{left:0;top:2em;z-index:99}#page-nav li:hover li ul,li.sfHover li ul{top:-999em}#page-nav li li:hover ul,li li.sfHover ul{left:10em;top:0}#page-nav li li:hover li ul,li li.sfHover li ul{top:-999em}#page-nav li li li:hover ul,li li li.sfHover ul{left:10em;top:0}
-
-/* @deprecated 0.8 Default category menu styles */
-#cat-nav ul{margin:0;padding:0;list-style:none}#cat-nav ul{line-height:1.0}#cat-nav .menu ul{position:absolute;top:-999em;width:10em}#cat-nav ul ul li{width:100%}#cat-nav li:hover{visibility:inherit}#cat-nav li{float:left;position:relative}#cat-nav a{display:block;position:relative}#cat-nav li:hover ul,li.sfHover ul{left:0;top:2em;z-index:99}#cat-nav li:hover li ul,li.sfHover li ul{top:-999em}#cat-nav li li:hover ul,li li.sfHover ul{left:10em;top:0}#cat-nav li li:hover li ul,li li.sfHover li ul{top:-999em}#cat-nav li li li:hover ul,li li li.sfHover ul{left:10em;top:0}
-
-/* Drop-down styles. */
-div.menu ul {
-	margin: 0;
-	padding: 0;
-	list-style: none;
-	line-height: 1.0;
-	}
-div.menu ul ul {
-	position: absolute;
-	top: -999em;
-	width: 10em;
-	}
-div.menu ul ul li {
-	width: 100%;
-	}
-div.menu li:hover {
-	visibility: inherit;
-	}
-div.menu li {
-	float: left;
-	position: relative;
-	}
-div.menu a {
-	display: block;
-	position: relative;
-	}
-div.menu li:hover ul, li.sfHover ul {
-	left: 0;
-	top: 2em;
-	z-index: 99;
-	}
-div.menu li:hover li ul, li.sfHover li ul {
-	top: -999em;
-	}
-div.menu li li:hover ul, li li.sfHover ul {
-	left: 10em;
-	top: 0;
-	}
-div.menu li li:hover li ul, li li.sfHover li ul {
-	top: -999em;
-	}
-div.menu li li li:hover ul, li li li.sfHover ul {
-	left: 10em;
-	top: 0;
-	}
\ No newline at end of file
+div.menu ul{margin:0;padding:0;list-style:none;line-height:1.0}div.menu ul ul{position:absolute;top:-999em;width:10em}div.menu ul ul li{width:100%}div.menu li:hover{visibility:inherit}div.menu li{float:left;position:relative}div.menu a{display:block;position:relative}div.menu li:hover ul,li.sfHover ul{left:0;top:2em;z-index:99}div.menu li:hover li ul,li.sfHover li ul{top:-999em}div.menu li li:hover ul,li li.sfHover ul{left:10em;top:0}div.menu li li:hover li ul,li li.sfHover li ul{top:-999em}div.menu li li li:hover ul,li li li.sfHover ul{left:10em;top:0}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/css/drop-downs.dev.css b/wp-content/themes/hybrid/library/css/drop-downs.dev.css
new file mode 100644
index 000000000..180dc86c3
--- /dev/null
+++ b/wp-content/themes/hybrid/library/css/drop-downs.dev.css
@@ -0,0 +1,55 @@
+/**
+ * Dropdowns Stylesheet
+ * Sets up some default dropdown menu styles
+ * Style rules for both the page and category menus
+ *
+ * @since 0.5
+ * @package Hybrid
+ * @subpackage CSS
+ */
+
+/* Drop-down styles. */
+div.menu ul {
+	margin: 0;
+	padding: 0;
+	list-style: none;
+	line-height: 1.0;
+	}
+div.menu ul ul {
+	position: absolute;
+	top: -999em;
+	width: 10em;
+	}
+div.menu ul ul li {
+	width: 100%;
+	}
+div.menu li:hover {
+	visibility: inherit;
+	}
+div.menu li {
+	float: left;
+	position: relative;
+	}
+div.menu a {
+	display: block;
+	position: relative;
+	}
+div.menu li:hover ul, li.sfHover ul {
+	left: 0;
+	top: 2em;
+	z-index: 99;
+	}
+div.menu li:hover li ul, li.sfHover li ul {
+	top: -999em;
+	}
+div.menu li li:hover ul, li li.sfHover ul {
+	left: 10em;
+	top: 0;
+	}
+div.menu li li:hover li ul, li li.sfHover li ul {
+	top: -999em;
+	}
+div.menu li li li:hover ul, li li li.sfHover ul {
+	left: 10em;
+	top: 0;
+	}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/css/gallery.css b/wp-content/themes/hybrid/library/css/gallery.css
new file mode 100644
index 000000000..c2b4ab079
--- /dev/null
+++ b/wp-content/themes/hybrid/library/css/gallery.css
@@ -0,0 +1 @@
+.gallery{display:block;clear:both;overflow:hidden;margin:0 auto}.gallery .gallery-row{display:block;clear:both;overflow:hidden;margin:0}.gallery .gallery-item{overflow:hidden;float:left;margin:0;text-align:center;list-style:none;padding:0}.gallery .gallery-item .gallery-icon img{width:auto;max-width:89%;height:auto;padding:1%;margin:0 auto}.gallery-caption{margin-left:0}.gallery .col-0{width:100%}.gallery .col-1{width:100%}.gallery .col-2{width:50%}.gallery .col-3{width:33.33%}.gallery .col-4{width:25%}.gallery .col-5{width:20%}.gallery .col-6{width:16.66%}.gallery .col-7{width:14.28%}.gallery .col-8{width:12.5%}.gallery .col-9{width:11.11%}.gallery .col-10{width:10%}.gallery .col-11{width:9.09%}.gallery .col-12{width:8.33%}.gallery .col-13{width:7.69%}.gallery .col-14{width:7.14%}.gallery .col-15{width:6.66%}.gallery .col-16{width:6.25%}.gallery .col-17{width:5.88%}.gallery .col-18{width:5.55%}.gallery .col-19{width:5.26%}.gallery .col-20{width:5%}.gallery .col-21{width:4.76%}.gallery .col-22{width:4.54%}.gallery .col-23{width:4.34%}.gallery .col-24{width:4.16%}.gallery .col-25{width:4%}.gallery .col-26{width:3.84%}.gallery .col-27{width:3.7%}.gallery .col-28{width:3.57%}.gallery .col-29{width:3.44%}.gallery .col-30{width:3.33%}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/css/gallery.dev.css b/wp-content/themes/hybrid/library/css/gallery.dev.css
new file mode 100644
index 000000000..0bd55b6e1
--- /dev/null
+++ b/wp-content/themes/hybrid/library/css/gallery.dev.css
@@ -0,0 +1,68 @@
+/**
+ * Cleaner Gallery Stylesheet
+ * @version 0.9.2
+ */
+
+.gallery {
+	display: block;
+	clear: both;
+	overflow: hidden;
+	margin: 0 auto;
+	}
+.gallery .gallery-row {
+	display: block;
+	clear: both;
+	overflow: hidden;
+	margin: 0;
+	}
+.gallery .gallery-item {
+	overflow: hidden;
+	float: left;
+	margin: 0;
+	text-align: center;
+	list-style: none;
+	padding: 0;
+	}
+.gallery .gallery-item .gallery-icon img {
+	width: auto;
+	max-width: 89%;
+	height: auto;
+	padding: 1%;
+	margin: 0 auto;
+	}
+.gallery-caption {
+	margin-left: 0;
+	}
+
+/* Image sizes depending on the number of columns */
+.gallery .col-0 { width: 100%; }
+.gallery .col-1 { width: 100%; }
+.gallery .col-2 { width: 50%; }
+.gallery .col-3 { width: 33.33%; }
+.gallery .col-4 { width: 25%; }
+.gallery .col-5 { width: 20%; }
+.gallery .col-6 { width: 16.66%; }
+.gallery .col-7 { width: 14.28%; }
+.gallery .col-8 { width: 12.5%; }
+.gallery .col-9 { width: 11.11%; }
+.gallery .col-10 { width: 10%; }
+.gallery .col-11 { width: 9.09%; }
+.gallery .col-12 { width: 8.33%; }
+.gallery .col-13 { width: 7.69%; }
+.gallery .col-14 { width: 7.14%; }
+.gallery .col-15 { width: 6.66%; }
+.gallery .col-16 { width: 6.25%; }
+.gallery .col-17 { width: 5.88%; }
+.gallery .col-18 { width: 5.55%; }
+.gallery .col-19 { width: 5.26%; }
+.gallery .col-20 { width: 5%; }
+.gallery .col-21 { width: 4.76%; }
+.gallery .col-22 { width: 4.54%; }
+.gallery .col-23 { width: 4.34%; }
+.gallery .col-24 { width: 4.16%; }
+.gallery .col-25 { width: 4%; }
+.gallery .col-26 { width: 3.84%; }
+.gallery .col-27 { width: 3.7%; }
+.gallery .col-28 { width: 3.57%; }
+.gallery .col-29 { width: 3.44%; }
+.gallery .col-30 { width: 3.33%; }
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/css/holy-grail-fluid.css b/wp-content/themes/hybrid/library/css/holy-grail-fluid.css
index 895f932f7..10606db3e 100644
--- a/wp-content/themes/hybrid/library/css/holy-grail-fluid.css
+++ b/wp-content/themes/hybrid/library/css/holy-grail-fluid.css
@@ -1 +1,5 @@
+/**
+ * @deprecated 1.0.0 - This file is for backwards compatibility with the Hybrid parent theme.  It will
+ * be removed in a future version.
+*/
 body{min-width:600px}#container{overflow:hidden;padding-left:200px; padding-right:200px}.content,#primary,#secondary{position:relative;float:left;padding-bottom:20010px; margin-bottom:-20000px}.content{width:100%}#primary{width:200px; right:200px; margin-left:-100%}#secondary{width:200px; margin-right:-200px}#footer{clear:both}* html #secondary{left:200px}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/css/plugins.css b/wp-content/themes/hybrid/library/css/plugins.css
index 7bf442956..9f1ec3679 100644
--- a/wp-content/themes/hybrid/library/css/plugins.css
+++ b/wp-content/themes/hybrid/library/css/plugins.css
@@ -1 +1,5 @@
+/**
+ * @deprecated 1.0.0 - This file is for backwards compatibility with the Hybrid parent theme.  It will
+ * be removed in a future version.
+*/
 .wp-pagenavi .pages{margin:2px 3px 2px 0;font-style:italic}.wp-pagenavi .current{margin:2px;padding:1px 6px;font-weight:bold}.wp-pagenavi .extend{margin:2px}.wp-pagenavi a{margin:0 2px;padding:1px 6px;font-style:italic;border:1px solid #ccc}.WP-EmailIcon{padding:0;margin:0;border:none}.comment_license{font-style:italic}img#wpstats{overflow:hidden !important;width:0 !important;height:0 !important;padding:0 !important;margin:0 !important}.contact-form{margin-bottom:21px}.contact-form legend{display:none}.contact-form .form-input input{display:block;margin-bottom:6px;padding:3px 6px;width:300px}.contact-form label{font-size:.9em}.contact-form textarea{width:97%;margin-bottom:6px;padding:6px}.contact-form .form-option{margin-bottom:6px}.contact-form .button{width:100px;margin-right:9px;padding:6px 9px}.contact-form .button:hover{cursor:pointer}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/css/reset.css b/wp-content/themes/hybrid/library/css/reset.css
index c187cdc08..c2542bdb5 100644
--- a/wp-content/themes/hybrid/library/css/reset.css
+++ b/wp-content/themes/hybrid/library/css/reset.css
@@ -1 +1 @@
-html,body,div,span,object,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,tt,var,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;vertical-align:baseline;outline:none;font-size:100%;background:transparent;border:none;text-decoration:none}b,i,hr,u,center,menu,layer,s,strike,font,xmp{margin:0;padding:0;vertical-align:baseline;outline:none;font-size:100%;font-weight:normal;font-style:normal;background:transparent;border:none;text-decoration:none}font{color:#333}center{text-align:left}
\ No newline at end of file
+html,body,div,span,object,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,tt,var,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video{margin:0;padding:0;vertical-align:baseline;outline:none;font-size:100%;background:transparent;border:none;text-decoration:none}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}b,i,hr,u,center,menu,layer,s,strike,font,xmp{margin:0;padding:0;vertical-align:baseline;outline:none;font-size:100%;font-weight:normal;font-style:normal;background:transparent;border:none;text-decoration:none}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/css/reset.dev.css b/wp-content/themes/hybrid/library/css/reset.dev.css
new file mode 100644
index 000000000..25b5efbe3
--- /dev/null
+++ b/wp-content/themes/hybrid/library/css/reset.dev.css
@@ -0,0 +1,27 @@
+html, body, div, span, object, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, tt, var, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
+	margin: 0;
+	padding: 0;
+	vertical-align: baseline;
+	outline: none;
+	font-size: 100%;
+	background: transparent;
+	border: none;
+	text-decoration: none;
+	}
+
+article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { 
+	display: block;
+	}
+
+b, i, hr, u, center, menu, layer, s, strike, font, xmp {
+	margin: 0;
+	padding: 0;
+	vertical-align: baseline;
+	outline: none;
+	font-size: 100%;
+	font-weight: normal;
+	font-style: normal;
+	background: transparent;
+	border: none;
+	text-decoration: none;
+	}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/css/screen.css b/wp-content/themes/hybrid/library/css/screen.css
index c6d3bfeaf..abad3eff3 100644
--- a/wp-content/themes/hybrid/library/css/screen.css
+++ b/wp-content/themes/hybrid/library/css/screen.css
@@ -1,609 +1,5 @@
 /**
- * Screen Stylesheet
- * Default style for the Hybrid theme
- *
- * @since 0.3
- * @package Hybrid
- * @subpackage CSS
+ * @deprecated 1.0.0 - This file is for backwards compatibility with the Hybrid parent theme.  It will
+ * be removed in a future version.
  */
-
-/* Body */
-body {
-	font: normal normal normal 15px/21px Georgia, Times, "Times New Roman", serif;
-	color: #000;
-	}
-
-/* Body container */
-#body-container {
-	margin: 90px auto 21px auto;
-	}
-
-/* Links */
-a {
-	color: #21759b;
-	text-decoration: none;
-	}
-a:visited {
-	color: #551a8b;
-	}
-a:hover, a:active {
-	color: #d54e21;
-	text-decoration: underline;
-	}
-
-/* Headers */
-h2, h3, h4, h5, h6 {
-	font-family: Georgia, Times, "Times New Roman", serif;
-	color: #000;
-	font-weight: bold;
-	}
-h2 {
-	font-size: 21px;
-	}
-h3 {
-	font-size: 19px;
-	}
-h4 {
-	font-size: 17px;
-	}
-h5 {
-	font-size: 15px;
-	}
-h6 {
-	font-size: 13px;
-	}
-
-/* Lists */
-ul {
-	list-style: square;
-	}
-
-/* Blockquotes */
-blockquote {
-	font-style: italic;
-	color: #555;
-	}
-blockquote blockquote {
-	color: #777;
-	}
-blockquote em {
-	font-style: normal;
-	}
-
-/* Code */
-pre {
-	padding: 9px;
-	background: #f9f9f9;
-	border: 1px solid #ccc;
-	}
-code {
-	padding: 0 3px;
-	background: #eee;
-	}
-pre code {
-	background: transparent;
-	}
-
-/* Tables */
-table {
-	width: 100%;
-	border-collapse: separate;
-	border-top: 1px solid #ccc;
-	border-left: 1px solid #ccc;
-	}
-caption {
-	font-size: .9em;
-	font-style: italic;
-	text-align: right;
-	}
-td, th {
-	padding: 3px 6px;
-	border-bottom: 1px solid #ccc;
-	border-right: 1px solid #ccc;
-	}
-th {
-	background: #eee;
-	}
-
-/* Drop caps */
-.drop-cap {
-	float: left;
-	margin: 3px 3px 0 0;
-	font: normal normal normal 47px/35px "Warnock Pro", "Goudy Old Style", Palatino,"Book Antiqua", Georgia, serif;
-	color: #333;
-	}
-
-/* Notes */
-.note {
-	padding: 6px 9px;
-	background: #eee;
-	border: 1px solid #ccc;
-	}
-
-/* Warnings/Alerts */
-.warning, .alert {
-	padding: 6px 9px;
-	background: #fffbbc;
-	border: 1px solid #E6DB55;
-	}
-
-/* Errors */
-.error {
-	padding: 6px 9px;
-	background: #ffebe8;
-	border: 1px solid #C00;
-	}
-
-/* Downloads */
-.download {
-	padding: 6px 9px;
-	background: #e7f7d3;
-	border: 1px solid #6c3;
-	}
-
-/* Breadcrumb */
-.breadcrumb {
-	margin: 0 0 30px 0;
-	font-size: .9em;
-	font-style: italic;
-	color: #666;
-	}
-.breadcrumb a {
-	color: #111;
-	text-decoration: none;
-	}
-.breadcrumb a:hover {
-	color: #d54e21;
-	text-decoration: underline;
-	}
-
-/* Images */
-.post img {
-	max-width: 568px;
-	padding: 5px;
-	border: 1px solid #ccc;
-	}
-
-.thumbnail {
-	float: left;
-	width: 100px;
-	height: 100px;
-	margin: 5px 15px 0 0;
-	}
-
-/* Captions [caption] */
-.wp-caption {
-	max-width: 576px;
-	margin-top: 6px;
-	padding: 6px 1px 0 1px;
-	border: 1px solid #ccc;
-	text-align: center;
-	}
-.wp-caption .wp-caption-text {
-	margin: 0;
-	padding: 0 5px;
-	text-align: right;
-	font-size: .9em;
-	font-style: italic;
-	color: #666;
-	}
-.wp-caption img {
-	max-width: 564px;
-	margin: 0 auto;
-	padding: 0;
-	border: 1px solid #666;
-	}
-
-/* Gallery [gallery] */
-.gallery img {
-	border: 1px solid #ccc;
-	}
-
-/* Avatars */
-.avatar {
-	float: left;
-	width: 100px;
-	height: 100px;
-	margin: 5px 15px 0 0;
-	padding: 5px;
-	border: 1px solid #ccc;
-	}
-
-/* Header */
-#header {
-	margin: 0 0 40px 0;
-	}
-
-/* Blog title */
-#site-title {
-	font: italic normal normal 35px/35px Georgia, Times, "Times New Roman", serif;
-	margin: 0 0 10px 0;
-	}
-#site-title a {
-	color: #000;
-	}
-
-/* Blog description */
-#site-description {
-	font: normal normal normal 16px/20px Georgia, Times, "Times New Roman", serif;
-	margin: 0;
-	color: #666;
-	}
-
-/* Navigation */
-#primary-menu, #navigation {
-	overflow: visible;
-	height: 34px;
-	margin: 0 0 60px 0;
-	z-index: 100;
-	}
-#primary-menu li, #page-nav li {
-	margin-right: 15px;
-	}
-#primary-menu li li, #page-nav li li {
-	margin-right: 0;
-	}
-#primary-menu li a, #page-nav li a {
-	padding: 8px 15px 8px 15px;
-	color: #111;
-	background: #fff;
-	border: 1px solid #ccc;
-	}
-
-/* Drop-downs style */
-#primary-menu li:hover ul, #primary-menu li.sfHover ul, #page-nav li:hover ul, #page-nav li.sfHover ul {
-	top: 32px;
-	}
-#primary-menu li li a, #page-nav li li a {
-	border-top: none;
-	margin-right: 0;
-	}
-#primary-menu li ul, #page-nav li ul {
-	background: #fff;
-	border-top: 1px solid #ccc;
-	}
-#primary-menu li li:hover ul, #primary-menu li li.sfHover ul, #primary-menu li li li:hover ul, #primary-menu li li li.sfHover ul, 
-#page-nav li li:hover ul, #page-nav li li.sfHover ul , #page-nav li li li:hover ul, #page-nav li li li.sfHover ul  {
-	top: -1px;
-	}
-#primary-menu li li li, #page-nav li li li {
-	margin-left: -1px;
-	}
-
-/* Container (wraps content, primary, and secondary) */
-#container {
-	margin-bottom: 21px;
-	}
-
-/* Main content */
-.content {
-	margin: 0 0 21px 0;
-	}
-.no-widgets .content, .page-template-no-widgets .content {
-	width: 960px;
-	}
-
-/* Posts */
-.post {
-	overflow: hidden;
-	margin: 0 0 40px 0;
-	}
-.single .post, .attachment .post, .page .post {
-	margin: 0;
-	}
-
-/* Archive information */
-.author-info, .search-info {
-	overflow: hidden;
-	margin: 0 0 40px 0;
-	}
-
-/* Entry title */
-.entry-title {
-	font-size: 24px;
-	margin: 0 0 12px 0;
-	font-weight: normal;
-	font-style: italic;
-	}
-.archive .entry-title, .search .entry-title {
-	font-size: 21px;
-	margin: 0;
-	}
-.page-title, .attachment-title {
-	margin: 0 0 21px 0;
-	}
-.entry-title a {
-	color: #000;
-	}
-
-/* Byline */
-.byline {
-	margin: 0 0 30px 0;
-	font-style: italic;
-	color: #666;
-	}
-.archive .byline, .search .byline {
-	margin: 0;
-	}
-.byline .byline-prep {
-	text-transform: lowercase;
-	}
-
-/* Entry content */
-.entry-content {
-	overflow: hidden;
-	margin: 0 0 10px 0;
-	}
-
-/* Entry metadata */
-.entry-meta {
-	clear: both;
-	font-style: italic;
-	color: #666;
-	}
-
-/* Page links (multiple-paged posts) */
-p.page-links a {
-	margin: 0 3px;
-	padding: 3px 9px 3px 9px;
-	border: 1px solid #ccc;
-	}
-
-/* Navigation links */
-.navigation-links {
-	margin-bottom: 21px;
-	font-style: italic;
-	}
-.navigation-links .previous {
-	float: left;
-	max-width: 50%;
-	}
-.navigation-links .next {
-	float: right;
-	max-width: 50%;
-	text-align: right;
-	}
-.navigation-attachment {
-	overflow: hidden;
-	}
-
-/* WP Pagenavi plugin */
-.wp-pagenavi {
-	margin-bottom: 21px;
-	}
-.wp-pagenavi .pages, .wp-pagenavi .current, .wp-pagenavi .extend, .wp-pagenavi a {
-	margin-right: 6px;
-	padding: 3px 9px 3px 9px;
-	border: 1px solid #ccc;
-	}
-
-/* Widgets */
-.widget {
-	overflow: hidden;
-	margin: 0 0 15px 0;
-	color: #464646;
-	}
-.widget a {
-	color: #464646;
-	text-decoration: underline;
-	}
-.widget a:hover {
-	color: #d54e21;
-	text-decoration: none;
-	}
-
-/* Widget titles */
-.widget-title {
-	font-size: 18px;
-	font-weight: normal;
-	font-style: italic;
-	color: #111;
-	}
-
-/* Utility widget areas */
-#utility-before-content, #utility-after-content, #utility-after-page, #utility-after-single {
-	margin: 0 0 21px 0;
-	padding: 20px 20px 0 20px;
-	border: 1px solid #ccc;
-	}
-
-/* Comments template */
-#comments-template {
-	clear: both;
-	}
-
-/* Comment headers */
-.comments-header {
-	font-size: 1.2em;
-	}
-
-/* Comments are closed */
-.comments-closed {
-	font-style: italic;
-	}
-
-/* Comment list */
-#comments-template ol {
-	list-style: none;
-	margin: 0 0 21px 0;
-	}
-#comments li, #comments li li li, #comments li li li li li {
-	overflow: hidden;
-	margin: 0 0 15px 0;
-	padding: 15px 15px 0 15px;
-	background: #fff;
-	border: 1px solid #ccc;
-	}
-#comments li li, #comments li li li li {
-	background: #f9f9f9;
-	}
-
-/* Avatar */
-#comments-template .avatar {
-	width: 40px;
-	height: 40px;
-	float: left;
-	margin-right: 15px;
-	padding: 0;
-	border: 1px solid #666;
-	}
-
-/* Comment metadata */
-.comment-meta {
-	margin: 10px 0 21px 0;
-	font-size: 13px;
-	color: #666;
-	}
-.comment-author {
-	font-size: 15px;
-	color: #000;
-	}
-.comment-reply-link, .permalink, .comment-edit-link {
-	font-style: italic;
-	color: #666;
-	}
-
-/* Comment text */
-.comment-text {
-	clear: left;
-	margin: 0 15px;
-	}
-
-/* Form */
-.text-input {
-	display: block;
-	padding: 3px 6px;
-	width: 97%;
-	}
-#comments-template label {
-	font-size: .9em;
-	}
-
-/* Respond textarea */
-textarea {
-	width: 98%;
-	}
-
-/* Submit and rest buttons */
-.button, .submit, .reset {
-	width: 100px;
-	margin-right: 15px;
-	padding: 7px 15px 8px 15px;
-	background: #fff;
-	border: 1px solid #ccc;
-	}
-.button:hover, .submit:hover, .reset:hover {
-	cursor: pointer;
-	background: #f9f9f9;
-	}
-
-/* Footer container */
-#footer-container {
-	clear: both;
-	margin: 0 0 21px 0;
-	}
-
-/* Subsidiary */
-#subsidiary {
-	margin: 0 0 21px 0;
-	}
-
-/* Footer */
-#footer {
-	font-style: italic;
-	color: #444;
-	}
-#footer .copyright {
-	display: inline;
-	float: left;
-	margin-right: 9px;
-	}
-
-/* Post Layouts */
-.layout-1c .content {
-	width: 960px;
-	}
-.layout-1c #primary {
-	clear: left;
-	float: left;
-	width: 470px;
-	}
-.layout-1c #secondary {
-	clear: none;
-	float: right;
-	width: 470px;
-	}
-.layout-2c-r .content {
-	float: right;
-	width: 620px;
-	}
-.layout-2c-r #primary {
-	float: left;
-	width: 300px;
-	}
-.layout-2c-r #secondary {
-	clear: left;
-	float: left;
-	width: 300px;
-	}
-.layout-2c-l .content {
-	float: left;
-	width: 620px;
-	}
-.layout-2c-l #primary {
-	float: right;
-	width: 300px;
-	}
-.layout-2c-l #secondary {
-	clear: right;
-	float: right;
-	width: 300px;
-	}
-.layout-3c-r .content {
-	float: right !important;
-	width: 520px !important;
-	}
-.layout-3c-r #primary {
-	float: left !important;
-	width: 190px !important;
-	}
-.layout-3c-r #secondary {
-	clear: none;
-	float: left !important;
-	width: 190px !important;
-	margin-left: 20px;
-	}
-.layout-3c-l .content {
-	float: left;
-	width: 520px;
-	}
-.layout-3c-l #primary {
-	float: right;
-	width: 190px;
-	}
-.layout-3c-l #secondary {
-	clear: none;
-	float: right;
-	width: 190px;
-	margin-right: 20px;
-	}
-.layout-3c-c #container {
-	padding-left: 240px;
-	padding-right: 240px;
-	}
-.layout-3c-c .content {
-	width: 480px;
-	float: left;
-	}
-.layout-3c-c #primary {
-	float: left;
-	width: 220px;
-	position: relative;
-	right: 720px;
-	}
-.layout-3c-c #secondary {
-	float: left;
-	width: 220px;
-	position: relative;
-	margin-left: -220px;
-	}
\ No newline at end of file
+.sticky,.bypostauthor{}body{font:normal normal normal 15px/21px Georgia,Times,"Times New Roman",serif;color:#000}#body-container{margin:90px auto 21px auto}a{color:#21759b;text-decoration:none}a:visited{color:#551a8b}a:hover,a:active{color:#d54e21;text-decoration:underline}h1,h2,h3,h4,h5,h6{font-family:Arial,Verdana,sans-serif;color:#000;font-weight:bold}h1{font-size:24px}h2{font-size:21px}h3{font-size:19px}h4{font-size:17px}h5{font-size:15px}h6{font-size:13px}ul{list-style:square}blockquote{font-style:italic;color:#555}blockquote blockquote{color:#777}blockquote em{font-style:normal}pre{padding:9px;background:#f9f9f9;border:1px solid #ccc}code{padding:0 3px;background:#eee}pre code{background:transparent}table{width:100%;border-collapse:separate;border-top:1px solid #ccc;border-left:1px solid #ccc}caption{font-size:.9em;font-style:italic;text-align:right}td,th{padding:3px 6px;border-bottom:1px solid #ccc;border-right:1px solid #ccc}th{background:#eee}.drop-cap{float:left;margin:3px 3px 0 0;font:normal normal normal 47px/35px "Warnock Pro","Goudy Old Style",Palatino,"Book Antiqua",Georgia,serif;color:#333}.note{padding:6px 9px;background:#eee;border:1px solid #ccc}.warning,.alert{padding:6px 9px;background:#fffbbc;border:1px solid #E6DB55}.error{padding:6px 9px;background:#ffebe8;border:1px solid #C00}.download{padding:6px 9px;background:#e7f7d3;border:1px solid #6c3}.breadcrumb{margin:0 0 30px 0;font-size:.9em;font-style:italic;color:#666}.breadcrumb a{color:#111;text-decoration:none}.breadcrumb a:hover{color:#d54e21;text-decoration:underline}.hentry img{max-width:610px;height:auto;padding:4px;border:1px solid #ccc}.no-widgets .hentry img{max-width:950px}img.alignleft,img.alignright{margin-bottom:10px}.thumbnail{float:left;width:100px;height:100px;margin:5px 15px 10px 0}img.wp-smiley{max-width:12px;padding:0;background:transparent;border:none}.wp-caption{max-width:616px;margin-top:6px;padding:6px 1px 3px 1px;border:1px solid #ccc;text-align:center}.wp-caption .wp-caption-text{margin:0;padding:0 5px;text-align:right;font-size:.9em;font-style:italic;color:#666}.wp-caption img{max-width:604px;margin:0 auto;padding:0;border:1px solid #666}.no-widgets .wp-caption{max-width:956px}.no-widgets .wp-caption img{max-width:946px}.gallery img{border:1px solid #ccc}.avatar{float:left;width:100px;height:100px;margin:5px 15px 0 0;padding:4px;border:1px solid #ccc}#header{margin:0 0 40px 0}#site-title{font:normal normal bold 35px/35px Arial,Verdana,sans-serif;margin:0 0 10px 0}#site-title a{color:#000}#site-description{font:normal normal normal 16px/20px Georgia,Times,"Times New Roman",serif;margin:0;color:#666}#primary-menu,#navigation{overflow:visible;height:34px;margin:0 0 60px 0;z-index:100}#primary-menu li,#page-nav li{margin-right:15px}#primary-menu li li,#page-nav li li{margin-right:0}#primary-menu li a,#page-nav li a{padding:8px 15px 8px 15px;color:#111;background:#fff;border:1px solid #ccc}#primary-menu li:hover ul,#primary-menu li.sfHover ul,#page-nav li:hover ul,#page-nav li.sfHover ul{top:32px}#primary-menu li li a,#page-nav li li a{border-top:none;margin-right:0}#primary-menu li ul,#page-nav li ul{background:#fff;border-top:1px solid #ccc}#primary-menu li li:hover ul,#primary-menu li li.sfHover ul,#primary-menu li li li:hover ul,#primary-menu li li li.sfHover ul,#page-nav li li:hover ul,#page-nav li li.sfHover ul,#page-nav li li li:hover ul,#page-nav li li li.sfHover ul {top:-1px}#primary-menu li li li,#page-nav li li li{margin-left:-1px}#container{margin-bottom:21px}.content{margin:0 0 21px 0}.no-widgets .content,.page-template-no-widgets .content{width:960px}.hentry{overflow:hidden;margin:0 0 40px 0}.singular .hentry{margin:0}.loop-meta{overflow:hidden;margin:0 0 40px 0}.loop-title{font:normal normal bold 24px/24px Arial,Verdana,sans-serif}.entry-title{font:normal normal bold 24px/24px Arial,Verdana,sans-serif;margin:0 0 12px 0}.archive .entry-title,.search .entry-title{font-size:21px;margin:0 0 5px 0}.singular-page .entry-title,.singular-attachment .entry-title{margin:0 0 21px 0}.entry-title a{color:#000}.byline{margin:0 0 30px 0;font-style:italic;color:#666}.archive .byline,.search .byline{margin:0 0 5px 0}.entry-content{margin:0 0 10px 0}.entry-meta{clear:both;font-style:italic;color:#666}p.page-links,.comment-pagination{clear:both}.comment-pagination{margin-bottom:21px}p.page-links a,.comment-pagination .page-numbers{margin:0 3px;padding:3px 9px 3px 9px;border:1px solid #ccc}.navigation-links{margin-bottom:21px;font-style:italic}.navigation-links .previous{float:left;max-width:50%}.navigation-links .next{float:right;max-width:50%;text-align:right}.navigation-attachment{overflow:hidden}.widget{overflow:hidden;margin:0 0 15px 0;color:#464646}.widget a{color:#464646;text-decoration:underline}.widget a:hover{color:#d54e21;text-decoration:none}.widget-title{font-size:18px;color:#111}#utility-before-content,#utility-after-content,#utility-after-page,#utility-after-single{margin:0 0 21px 0;padding:20px 20px 0 20px;border:1px solid #ccc}#comments-template{clear:both}.comments-header{font-size:1.2em}.comments-closed{font-style:italic}ol.comment-list,ol.comment-list ol.children{list-style:none;margin:0 0 21px 0}li.comment,li li li.comment,li li li li li.comment,li li li li li li li.comment,li li li li li li li li li.comment,li.pingback,li.trackback{overflow:hidden;margin:0 0 21px 0;padding:21px 21px 0 21px;background:#fff;border:1px solid #ccc}li li.comment,li li li li.comment,li li li li li li.comment,li li li li li li li li.comment,li li li li li li li li li li.comment{background:#f9f9f9}#comments-template .avatar{width:40px;height:40px;float:left;margin-right:15px;padding:0;border:1px solid #666}.comment-meta{margin:10px 0 21px 0;font-size:13px;color:#666}.comment-author{font-size:15px;color:#000}.comment-reply-link,.permalink,.comment-edit-link{font-style:italic;color:#666}.comment-text{clear:left;margin:0 15px}.text-input{display:block;padding:3px 6px;width:97%}#comments-template label{font-size:.9em}textarea{width:98%}#submit{display:inline-block;margin-right:15px;padding:7px 15px 8px 15px;background:#fff;border:1px solid #ccc}#submit:hover{cursor:pointer;background:#f9f9f9}#footer-container{clear:both;margin:0 0 21px 0}#subsidiary{margin:0 0 21px 0}#footer{font-style:italic;color:#444}#footer .copyright{display:inline;float:left;margin-right:9px}.content{float:left;width:620px}#primary{float:right;width:300px}#secondary{clear:right;float:right;width:300px}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/css/ui-tabs.css b/wp-content/themes/hybrid/library/css/ui-tabs.css
new file mode 100644
index 000000000..bfa675a94
--- /dev/null
+++ b/wp-content/themes/hybrid/library/css/ui-tabs.css
@@ -0,0 +1,20 @@
+/**
+ * Base stylesheet for use with the jQuery UI Tabs component.
+ *
+ * @since 0.9
+ * @package HybridCore
+ * @subpackage CSS
+ */
+
+.ui-tabs {}
+
+.ui-tabs-wrap {}
+
+.ui-tabs-nav {}
+.ui-tabs-nav li {}
+.ui-tabs-nav li a {}
+.ui-tabs-nav li.ui-tabs-selected {}
+.ui-tabs-nav li.ui-tabs-selected a {}
+
+.ui-tabs-hide {}
+.ui-tabs-panel {}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/extensions/breadcrumb-trail.php b/wp-content/themes/hybrid/library/extensions/breadcrumb-trail.php
index 15bd87e9a..ef93d3d98 100644
--- a/wp-content/themes/hybrid/library/extensions/breadcrumb-trail.php
+++ b/wp-content/themes/hybrid/library/extensions/breadcrumb-trail.php
@@ -1,38 +1,42 @@
 <?php
 /**
- * A script for showing a breadcrumb trail for any type of page.  It tries to anticipate any
- * type of structure and display the best possible trail that matches your site's permalinks.
+ * Breadcrumb Trail - A breadcrumb menu script for WordPress.
+ *
+ * Breadcrumb Trail is a script for showing a breadcrumb trail for any type of page.  It tries to anticipate 
+ * any type of structure and display the best possible trail that matches your site's permalink structure.
  * While not perfect, it attempts to fill in the gaps left by many other breadcrumb scripts.
  *
- * @copyright 2008 - 2010
- * @version 0.3
- * @author Justin Tadlock
- * @link http://justintadlock.com/archives/2009/04/05/breadcrumb-trail-wordpress-plugin
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ * This program is free software; you can redistribute it and/or modify it under the terms of the GNU 
+ * General Public License version 2, as published by the Free Software Foundation.  You may NOT assume 
+ * that you can use any other version of the GPL.
  *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without 
+ * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  *
  * @package BreadcrumbTrail
+ * @version 0.4.1
+ * @author Justin Tadlock <justin@justintadlock.com>
+ * @copyright Copyright (c) 2008 - 2011, Justin Tadlock
+ * @link http://justintadlock.com/archives/2009/04/05/breadcrumb-trail-wordpress-plugin
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
  */
 
 /**
- * Shows a breadcrumb for all types of pages.  Themes and plugins can filter $args or 
- * input directly.  Allow filtering of only the $args using get_the_breadcrumb_args.
+ * Shows a breadcrumb for all types of pages.  This function is formatting the final output of the 
+ * breadcrumb trail.  The breadcrumb_trail_get_items() function returns the items and this function 
+ * formats those items.
  *
- * @since 0.1
+ * @since 0.1.0
  * @param array $args Mixed arguments for the menu.
  * @return string Output of the breadcrumb menu.
  */
 function breadcrumb_trail( $args = array() ) {
-	global $wp_query, $wp_rewrite;
 
 	/* Get the textdomain. */
-	$textdomain = hybrid_get_textdomain();
+	$textdomain = breadcrumb_trail_textdomain();
 
-	/* Create an empty array for the trail. */
-	$trail = array();
+	/* Create an empty variable for the breadcrumb. */
+	$breadcrumb = '';
 
 	/* Set up the default arguments for the breadcrumb. */
 	$defaults = array(
@@ -41,43 +45,93 @@ function breadcrumb_trail( $args = array() ) {
 		'after' => false,
 		'front_page' => true,
 		'show_home' => __( 'Home', $textdomain ),
-		'single_tax' => false, // @deprecated 0.3 Use singular_{$post_type}_taxonomy.
 		'echo' => true
 	);
 
 	/* Allow singular post views to have a taxonomy's terms prefixing the trail. */
-	if ( is_singular() )
-		$defaults["singular_{$wp_query->post->post_type}_taxonomy"] = false;
+	if ( is_singular() ) {
+		$post = get_queried_object();
+		$defaults["singular_{$post->post_type}_taxonomy"] = false;
+	}
 
 	/* Apply filters to the arguments. */
 	$args = apply_filters( 'breadcrumb_trail_args', $args );
 
 	/* Parse the arguments and extract them for easy variable naming. */
-	extract( wp_parse_args( $args, $defaults ) );
+	$args = wp_parse_args( $args, $defaults );
+
+	/* Get the trail items. */
+	$trail = breadcrumb_trail_get_items( $args );
+
+	/* Connect the breadcrumb trail if there are items in the trail. */
+	if ( !empty( $trail ) && is_array( $trail ) ) {
+
+		/* Open the breadcrumb trail containers. */
+		$breadcrumb = '<div class="breadcrumb breadcrumbs"><div class="breadcrumb-trail">';
+
+		/* If $before was set, wrap it in a container. */
+		$breadcrumb .= ( !empty( $args['before'] ) ? '<span class="trail-before">' . $args['before'] . '</span> ' : '' );
+
+		/* Wrap the $trail['trail_end'] value in a container. */
+		if ( !empty( $trail['trail_end'] ) )
+			$trail['trail_end'] = '<span class="trail-end">' . $trail['trail_end'] . '</span>';
 
-	/* For backwards compatibility, set $single_tax if it's explicitly given. */
-	if ( $single_tax )
-		$args['singular_post_taxonomy'] = $single_tax;
+		/* Format the separator. */
+		$separator = ( !empty( $args['separator'] ) ? '<span class="sep">' . $args['separator'] . '</span>' : '<span class="sep">/</span>' );
 
-	/* Format the separator. */
-	if ( $separator )
-		$separator = '<span class="sep">' . $separator . '</span>';
+		/* Join the individual trail items into a single string. */
+		$breadcrumb .= join( " {$separator} ", $trail );
+
+		/* If $after was set, wrap it in a container. */
+		$breadcrumb .= ( !empty( $args['after'] ) ? ' <span class="trail-after">' . $args['after'] . '</span>' : '' );
+
+		/* Close the breadcrumb trail containers. */
+		$breadcrumb .= '</div></div>';
+	}
+
+	/* Allow developers to filter the breadcrumb trail HTML. */
+	$breadcrumb = apply_filters( 'breadcrumb_trail', $breadcrumb, $args );
+
+	/* Output the breadcrumb. */
+	if ( $args['echo'] )
+		echo $breadcrumb;
+	else
+		return $breadcrumb;
+}
+
+/**
+ * Gets the items for the breadcrumb trail.  This is the heart of the script.  It checks the current page 
+ * being viewed and decided based on the information provided by WordPress what items should be
+ * added to the breadcrumb trail.
+ *
+ * @since 0.4.0
+ * @todo Build in caching based on the queried object ID.
+ * @param array $args Mixed arguments for the menu.
+ * @return array List of items to be shown in the trail.
+ */
+function breadcrumb_trail_get_items( $args = array() ) {
+	global $wp_rewrite;
+
+	/* Get the textdomain. */
+	$textdomain = breadcrumb_trail_textdomain();
+
+	/* Set up an empty trail array and empty path. */
+	$trail = array();
+	$path = '';
 
 	/* If $show_home is set and we're not on the front page of the site, link to the home page. */
-	if ( !is_front_page() && $show_home )
-		$trail[] = '<a href="' . home_url() . '" title="' . get_bloginfo( 'name' ) . '" rel="home" class="trail-begin">' . $show_home . '</a>';
+	if ( !is_front_page() && $args['show_home'] )
+		$trail[] = '<a href="' . home_url() . '" title="' . esc_attr( get_bloginfo( 'name' ) ) . '" rel="home" class="trail-begin">' . $args['show_home'] . '</a>';
 
 	/* If viewing the front page of the site. */
 	if ( is_front_page() ) {
-		if ( !$front_page )
-			$trail = false;
-		elseif ( $show_home )
-			$trail['trail_end'] = "{$show_home}";
+		if ( $args['show_home'] && $args['front_page'] )
+			$trail['trail_end'] = "{$args['show_home']}";
 	}
 
 	/* If viewing the "home"/posts page. */
 	elseif ( is_home() ) {
-		$home_page = get_page( $wp_query->get_queried_object_id() );
+		$home_page = get_page( get_queried_object_id() );
 		$trail = array_merge( $trail, breadcrumb_trail_get_parents( $home_page->post_parent, '' ) );
 		$trail['trail_end'] = get_the_title( $home_page->ID );
 	}
@@ -86,18 +140,48 @@ function breadcrumb_trail( $args = array() ) {
 	elseif ( is_singular() ) {
 
 		/* Get singular post variables needed. */
-		$post_id = absint( $wp_query->post->ID );
-		$post_type = $wp_query->post->post_type;
-		$parent = $wp_query->post->post_parent;
+		$post = get_queried_object();
+		$post_id = absint( get_queried_object_id() );
+		$post_type = $post->post_type;
+		$parent = absint( $post->post_parent );
 
-		/* If a custom post type, check if there are any pages in its hierarchy based on the slug. */
-		if ( 'page' !== $post_type ) {
+		/* Get the post type object. */
+		$post_type_object = get_post_type_object( $post_type );
+
+		/* If viewing a singular 'post'. */
+		if ( 'post' == $post_type ) {
+
+			/* If $front has been set, add it to the $path. */
+			$path .= trailingslashit( $wp_rewrite->front );
+
+			/* If there's a path, check for parents. */
+			if ( !empty( $path ) )
+				$trail = array_merge( $trail, breadcrumb_trail_get_parents( '', $path ) );
+
+			/* Map the permalink structure tags to actual links. */
+			$trail = array_merge( $trail, breadcrumb_trail_map_rewrite_tags( $post_id, get_option( 'permalink_structure' ), $args ) );
+		}
+
+		/* If viewing a singular 'attachment'. */
+		elseif ( 'attachment' == $post_type ) {
+
+			/* If $front has been set, add it to the $path. */
+			$path .= trailingslashit( $wp_rewrite->front );
+
+			/* If there's a path, check for parents. */
+			if ( !empty( $path ) )
+				$trail = array_merge( $trail, breadcrumb_trail_get_parents( '', $path ) );
 
-			$post_type_object = get_post_type_object( $post_type );
+			/* Map the post (parent) permalink structure tags to actual links. */
+			$trail = array_merge( $trail, breadcrumb_trail_map_rewrite_tags( $post->post_parent, get_option( 'permalink_structure' ), $args ) );
+		}
+
+		/* If a custom post type, check if there are any pages in its hierarchy based on the slug. */
+		elseif ( 'page' !== $post_type ) {
 
 			/* If $front has been set, add it to the $path. */
-			if ( 'post' == $post_type || 'attachment' == $post_type || ( $post_type_object->rewrite['with_front'] && $wp_rewrite->front ) )
-				$path = trailingslashit( $wp_rewrite->front );
+			if ( $post_type_object->rewrite['with_front'] && $wp_rewrite->front )
+				$path .= trailingslashit( $wp_rewrite->front );
 
 			/* If there's a slug, add it to the $path. */
 			if ( !empty( $post_type_object->rewrite['slug'] ) )
@@ -106,18 +190,28 @@ function breadcrumb_trail( $args = array() ) {
 			/* If there's a path, check for parents. */
 			if ( !empty( $path ) )
 				$trail = array_merge( $trail, breadcrumb_trail_get_parents( '', $path ) );
+
+			/* If there's an archive page, add it to the trail. */
+			if ( !empty( $post_type_object->has_archive ) )
+				$trail[] = '<a href="' . get_post_type_archive_link( $post_type ) . '" title="' . esc_attr( $post_type_object->labels->name ) . '">' . $post_type_object->labels->name . '</a>';
 		}
 
-		/* If the post type is hierarchical or is an attachment, get its parents. */
-		if ( is_post_type_hierarchical( $post_type ) || is_attachment() )
+		/* If the post type path returns nothing and there is a parent, get its parents. */
+		if ( ( empty( $path ) && 0 !== $parent ) || ( 'attachment' == $post_type ) )
+			$trail = array_merge( $trail, breadcrumb_trail_get_parents( $parent, '' ) );
+
+		/* Or, if the post type is hierarchical and there's a parent, get its parents. */
+		elseif ( 0 !== $parent && is_post_type_hierarchical( $post_type ) )
 			$trail = array_merge( $trail, breadcrumb_trail_get_parents( $parent, '' ) );
 
 		/* Display terms for specific post type taxonomy if requested. */
-		if ( $args["singular_{$post_type}_taxonomy"] && $terms = get_the_term_list( $post_id, $args["singular_{$post_type}_taxonomy"], '', ', ', '' ) )
+		if ( !empty( $args["singular_{$post_type}_taxonomy"] ) && $terms = get_the_term_list( $post_id, $args["singular_{$post_type}_taxonomy"], '', ', ', '' ) )
 			$trail[] = $terms;
 
 		/* End with the post title. */
-		$trail['trail_end'] = get_the_title();
+		$post_title = get_the_title();
+		if ( !empty( $post_title ) )
+			$trail['trail_end'] = $post_title;
 	}
 
 	/* If we're viewing any type of archive. */
@@ -127,7 +221,7 @@ function breadcrumb_trail( $args = array() ) {
 		if ( is_tax() || is_category() || is_tag() ) {
 
 			/* Get some taxonomy and term variables. */
-			$term = $wp_query->get_queried_object();
+			$term = get_queried_object();
 			$taxonomy = get_taxonomy( $term->taxonomy );
 
 			/* Get the path to the term archive. Use this to determine if a page is present with it. */
@@ -150,7 +244,29 @@ function breadcrumb_trail( $args = array() ) {
 				$trail = array_merge( $trail, breadcrumb_trail_get_term_parents( $term->parent, $term->taxonomy ) );
 
 			/* Add the term name to the trail end. */
-			$trail['trail_end'] = $term->name;
+			$trail['trail_end'] = single_term_title( '', false );
+		}
+
+		/* If viewing a post type archive. */
+		elseif ( is_post_type_archive() ) {
+
+			/* Get the post type object. */
+			$post_type_object = get_post_type_object( get_query_var( 'post_type' ) );
+
+			/* If $front has been set, add it to the $path. */
+			if ( $post_type_object->rewrite['with_front'] && $wp_rewrite->front )
+				$path .= trailingslashit( $wp_rewrite->front );
+
+			/* If there's a slug, add it to the $path. */
+			if ( !empty( $post_type_object->rewrite['slug'] ) )
+				$path .= $post_type_object->rewrite['slug'];
+
+			/* If there's a path, check for parents. */
+			if ( !empty( $path ) )
+				$trail = array_merge( $trail, breadcrumb_trail_get_parents( '', $path ) );
+
+			/* Add the post type [plural] name to the trail end. */
+			$trail['trail_end'] = $post_type_object->labels->name;
 		}
 
 		/* If viewing an author archive. */
@@ -193,18 +309,18 @@ function breadcrumb_trail( $args = array() ) {
 				$trail = array_merge( $trail, breadcrumb_trail_get_parents( '', $wp_rewrite->front ) );
 
 			if ( is_day() ) {
-				$trail[] = '<a href="' . get_year_link( get_the_time( __( 'Y', $textdomain ) ) ) . '" title="' . get_the_time( __( 'Y', $textdomain ) ) . '">' . get_the_time( __( 'Y', $textdomain ) ) . '</a>';
-				$trail[] = '<a href="' . get_month_link( get_the_time( __( 'Y', $textdomain ) ), get_the_time( __( 'm', $textdomain ) ) ) . '" title="' . get_the_time( __( 'F', $textdomain ) ) . '">' . get_the_time( __( 'F', $textdomain ) ) . '</a>';
-				$trail['trail_end'] = get_the_time( __( 'j', $textdomain ) );
+				$trail[] = '<a href="' . get_year_link( get_the_time( 'Y' ) ) . '" title="' . get_the_time( esc_attr__( 'Y', $textdomain ) ) . '">' . get_the_time( __( 'Y', $textdomain ) ) . '</a>';
+				$trail[] = '<a href="' . get_month_link( get_the_time( 'Y' ), get_the_time( 'm' ) ) . '" title="' . get_the_time( esc_attr__( 'F', $textdomain ) ) . '">' . get_the_time( __( 'F', $textdomain ) ) . '</a>';
+				$trail['trail_end'] = get_the_time( __( 'd', $textdomain ) );
 			}
 
 			elseif ( get_query_var( 'w' ) ) {
-				$trail[] = '<a href="' . get_year_link( get_the_time( __( 'Y', $textdomain ) ) ) . '" title="' . get_the_time( __( 'Y', $textdomain ) ) . '">' . get_the_time( __( 'Y', $textdomain ) ) . '</a>';
-				$trail['trail_end'] = sprintf( __( 'Week %1$s', 'hybrid' ), get_the_time( __( 'W', $textdomain ) ) );
+				$trail[] = '<a href="' . get_year_link( get_the_time( 'Y' ) ) . '" title="' . get_the_time( esc_attr__( 'Y', $textdomain ) ) . '">' . get_the_time( __( 'Y', $textdomain ) ) . '</a>';
+				$trail['trail_end'] = sprintf( __( 'Week %1$s', $textdomain ), get_the_time( esc_attr__( 'W', $textdomain ) ) );
 			}
 
 			elseif ( is_month() ) {
-				$trail[] = '<a href="' . get_year_link( get_the_time( __( 'Y', $textdomain ) ) ) . '" title="' . get_the_time( __( 'Y', $textdomain ) ) . '">' . get_the_time( __( 'Y', $textdomain ) ) . '</a>';
+				$trail[] = '<a href="' . get_year_link( get_the_time( 'Y' ) ) . '" title="' . get_the_time( esc_attr__( 'Y', $textdomain ) ) . '">' . get_the_time( __( 'Y', $textdomain ) ) . '</a>';
 				$trail['trail_end'] = get_the_time( __( 'F', $textdomain ) );
 			}
 
@@ -222,105 +338,235 @@ function breadcrumb_trail( $args = array() ) {
 	elseif ( is_404() )
 		$trail['trail_end'] = __( '404 Not Found', $textdomain );
 
-	/* Connect the breadcrumb trail if there are items in the trail. */
-	if ( is_array( $trail ) ) {
-		$breadcrumb = '<div class="breadcrumb breadcrumbs"><div class="breadcrumb-trail">';
-		$breadcrumb .= " {$before} ";
-		$breadcrumb .= join( " {$separator} ", $trail );
-		$breadcrumb .= " {$after} ";
-		$breadcrumb .= '</div></div>';
-	}
+	/* Allow devs to step in and filter the $trail array. */
+	return apply_filters( 'breadcrumb_trail_items', $trail, $args );
+}
+
+/**
+ * Turns %tag% from permalink structures into usable links for the breadcrumb trail.  This feels kind of
+ * hackish for now because we're checking for specific %tag% examples and only doing it for the 'post' 
+ * post type.  In the future, maybe it'll handle a wider variety of possibilities, especially for custom post
+ * types.
+ *
+ * @since 0.4.0
+ * @param int $post_id ID of the post whose parents we want.
+ * @param string $path Path of a potential parent page.
+ * @param array $args Mixed arguments for the menu.
+ * @return array $trail Array of links to the post breadcrumb.
+ */
+function breadcrumb_trail_map_rewrite_tags( $post_id = '', $path = '', $args = array() ) {
 
-	$breadcrumb = apply_filters( 'breadcrumb_trail', $breadcrumb );
+	/* Set up an empty $trail array. */
+	$trail = array();
 
-	/* Output the breadcrumb. */
-	if ( $echo )
-		echo $breadcrumb;
-	else
-		return $breadcrumb;
+	/* Make sure there's a $path and $post_id before continuing. */
+	if ( empty( $path ) || empty( $post_id ) )
+		return $trail;
+
+	/* Get the post based on the post ID. */
+	$post = get_post( $post_id );
+
+	/* If no post is returned, an error is returned, or the post does not have a 'post' post type, return. */
+	if ( empty( $post ) || is_wp_error( $post ) || 'post' !== $post->post_type )
+		return $trail;
+
+	/* Get the textdomain. */
+	$textdomain = breadcrumb_trail_textdomain();
+
+	/* Trim '/' from both sides of the $path. */
+	$path = trim( $path, '/' );
+
+	/* Split the $path into an array of strings. */
+	$matches = explode( '/', $path );
+
+	/* If matches are found for the path. */
+	if ( is_array( $matches ) ) {
+
+		/* Loop through each of the matches, adding each to the $trail array. */
+		foreach ( $matches as $match ) {
+
+			/* Trim any '/' from the $match. */
+			$tag = trim( $match, '/' );
+
+			/* If using the %year% tag, add a link to the yearly archive. */
+			if ( '%year%' == $tag )
+				$trail[] = '<a href="' . get_year_link( get_the_time( 'Y', $post_id ) ) . '" title="' . get_the_time( esc_attr__( 'Y', $textdomain ), $post_id ) . '">' . get_the_time( __( 'Y', $textdomain ), $post_id ) . '</a>';
+
+			/* If using the %monthnum% tag, add a link to the monthly archive. */
+			elseif ( '%monthnum%' == $tag )
+				$trail[] = '<a href="' . get_month_link( get_the_time( 'Y', $post_id ), get_the_time( 'm', $post_id ) ) . '" title="' . get_the_time( esc_attr__( 'F Y', $textdomain ), $post_id ) . '">' . get_the_time( __( 'F', $textdomain ), $post_id ) . '</a>';
+
+			/* If using the %day% tag, add a link to the daily archive. */
+			elseif ( '%day%' == $tag )
+				$trail[] = '<a href="' . get_day_link( get_the_time( 'Y', $post_id ), get_the_time( 'm', $post_id ), get_the_time( 'd', $post_id ) ) . '" title="' . get_the_time( esc_attr__( 'F j, Y', $textdomain ), $post_id ) . '">' . get_the_time( __( 'd', $textdomain ), $post_id ) . '</a>';
+
+			/* If using the %author% tag, add a link to the post author archive. */
+			elseif ( '%author%' == $tag )
+				$trail[] = '<a href="' . get_author_posts_url( $post->post_author ) . '" title="' . esc_attr( get_the_author_meta( 'display_name', $post->post_author ) ) . '">' . get_the_author_meta( 'display_name', $post->post_author ) . '</a>';
+
+			/* If using the %category% tag, add a link to the first category archive to match permalinks. */
+			elseif ( '%category%' == $tag && 'category' !== $args["singular_{$post->post_type}_taxonomy"] ) {
+
+				/* Get the post categories. */
+				$terms = get_the_category( $post_id );
+
+				/* Check that categories were returned. */
+				if ( $terms ) {
+
+					/* Sort the terms by ID and get the first category. */
+					usort( $terms, '_usort_terms_by_ID' );
+					$term = get_term( $terms[0], 'category' );
+
+					/* If the category has a parent, add the hierarchy to the trail. */
+					if ( 0 !== $term->parent )
+						$trail = array_merge( $trail, breadcrumb_trail_get_term_parents( $term->parent, 'category' ) );
+
+					/* Add the category archive link to the trail. */
+					$trail[] = '<a href="' . get_term_link( $term, 'category' ) . '" title="' . esc_attr( $term->name ) . '">' . $term->name . '</a>';
+				}
+			}
+		}
+	}
+
+	/* Return the $trail array. */
+	return $trail;
 }
 
 /**
- * Gets parent pages of any post type or taxonomy by the ID or Path.  The goal of this 
- * function is to create a clear path back to home given what would normally be a "ghost"
- * directory.  If any page matches the given path, it'll be added.  But, it's also just a way
- * to check for a hierarchy with hierarchical post types.
+ * Gets parent pages of any post type or taxonomy by the ID or Path.  The goal of this function is to create 
+ * a clear path back to home given what would normally be a "ghost" directory.  If any page matches the given 
+ * path, it'll be added.  But, it's also just a way to check for a hierarchy with hierarchical post types.
  *
- * @since 0.3
+ * @since 0.3.0
  * @param int $post_id ID of the post whose parents we want.
  * @param string $path Path of a potential parent page.
  * @return array $trail Array of parent page links.
  */
 function breadcrumb_trail_get_parents( $post_id = '', $path = '' ) {
 
+	/* Set up an empty trail array. */
 	$trail = array();
 
+	/* Trim '/' off $path in case we just got a simple '/' instead of a real path. */
+	$path = trim( $path, '/' );
+
+	/* If neither a post ID nor path set, return an empty array. */
 	if ( empty( $post_id ) && empty( $path ) )
 		return $trail;
 
+	/* If the post ID is empty, use the path to get the ID. */
 	if ( empty( $post_id ) ) {
+
+		/* Get parent post by the path. */
 		$parent_page = get_page_by_path( $path );
-		$post_id = $parent_page->ID;
+
+		/* If a parent post is found, set the $post_id variable to it. */
+		if ( !empty( $parent_page ) )
+			$post_id = $parent_page->ID;
 	}
 
-	if ( $post_id == 0 ) {
+	/* If a post ID and path is set, search for a post by the given path. */
+	if ( $post_id == 0 && !empty( $path ) ) {
+
+		/* Separate post names into separate paths by '/'. */
 		$path = trim( $path, '/' );
 		preg_match_all( "/\/.*?\z/", $path, $matches );
 
+		/* If matches are found for the path. */
 		if ( isset( $matches ) ) {
+
+			/* Reverse the array of matches to search for posts in the proper order. */
 			$matches = array_reverse( $matches );
 
+			/* Loop through each of the path matches. */
 			foreach ( $matches as $match ) {
 
-				$path = str_replace( $match[0], '', $path );
-				$parent_page = get_page_by_path( trim( $path, '/' ) );
+				/* If a match is found. */
+				if ( isset( $match[0] ) ) {
+
+					/* Get the parent post by the given path. */
+					$path = str_replace( $match[0], '', $path );
+					$parent_page = get_page_by_path( trim( $path, '/' ) );
 
-				if ( $parent_page->ID > 0 ) {
-					$post_id = $parent_page->ID;
-					break;
+					/* If a parent post is found, set the $post_id and break out of the loop. */
+					if ( !empty( $parent_page ) && $parent_page->ID > 0 ) {
+						$post_id = $parent_page->ID;
+						break;
+					}
 				}
 			}
 		}
 	}
 
+	/* While there's a post ID, add the post link to the $parents array. */
 	while ( $post_id ) {
+
+		/* Get the post by ID. */
 		$page = get_page( $post_id );
+
+		/* Add the formatted post link to the array of parents. */
 		$parents[]  = '<a href="' . get_permalink( $post_id ) . '" title="' . esc_attr( get_the_title( $post_id ) ) . '">' . get_the_title( $post_id ) . '</a>';
+
+		/* Set the parent post's parent to the post ID. */
 		$post_id = $page->post_parent;
 	}
 
-	if ( $parents )
+	/* If we have parent posts, reverse the array to put them in the proper order for the trail. */
+	if ( isset( $parents ) )
 		$trail = array_reverse( $parents );
 
+	/* Return the trail of parent posts. */
 	return $trail;
 }
 
 /**
- * Searches for term parents of hierarchical taxonomies.  This function is similar to
- * the WordPress function get_category_parents() but handles any type of taxonomy.
+ * Searches for term parents of hierarchical taxonomies.  This function is similar to the WordPress 
+ * function get_category_parents() but handles any type of taxonomy.
  *
- * @since 0.3
+ * @since 0.3.0
  * @param int $parent_id The ID of the first parent.
  * @param object|string $taxonomy The taxonomy of the term whose parents we want.
  * @return array $trail Array of links to parent terms.
  */
 function breadcrumb_trail_get_term_parents( $parent_id = '', $taxonomy = '' ) {
+
+	/* Set up some default arrays. */
 	$trail = array();
 	$parents = array();
 
+	/* If no term parent ID or taxonomy is given, return an empty array. */
 	if ( empty( $parent_id ) || empty( $taxonomy ) )
 		return $trail;
 
+	/* While there is a parent ID, add the parent term link to the $parents array. */
 	while ( $parent_id ) {
+
+		/* Get the parent term. */
 		$parent = get_term( $parent_id, $taxonomy );
+
+		/* Add the formatted term link to the array of parent terms. */
 		$parents[] = '<a href="' . get_term_link( $parent, $taxonomy ) . '" title="' . esc_attr( $parent->name ) . '">' . $parent->name . '</a>';
+
+		/* Set the parent term's parent as the parent ID. */
 		$parent_id = $parent->parent;
 	}
 
-	if ( $parents )
+	/* If we have parent terms, reverse the array to put them in the proper order for the trail. */
+	if ( !empty( $parents ) )
 		$trail = array_reverse( $parents );
 
+	/* Return the trail of parent terms. */
 	return $trail;
 }
 
+/**
+ * Returns the textdomain used by the script and allows it to be filtered by plugins/themes.
+ *
+ * @since 0.4.0
+ * @returns string The textdomain for the script.
+ */
+function breadcrumb_trail_textdomain() {
+	return apply_filters( 'breadcrumb_trail_textdomain', 'breadcrumb-trail' );
+}
+
 ?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/extensions/cleaner-caption.php b/wp-content/themes/hybrid/library/extensions/cleaner-caption.php
new file mode 100644
index 000000000..52decfcdb
--- /dev/null
+++ b/wp-content/themes/hybrid/library/extensions/cleaner-caption.php
@@ -0,0 +1,87 @@
+<?php
+/**
+ * Cleaner Caption - Cleans up the WP [caption] shortcode.
+ *
+ * WordPress adds an inline style to its [caption] shortcode which specifically adds 10px of extra width to 
+ * captions, making theme authors jump through hoops to design captioned elements to their liking.  This extra
+ * width makes the assumption that all captions should have 10px of extra padding to account for a box that 
+ * wraps the element.  This script changes the width to match that of the 'width' attribute passed in through
+ * the shortcode, allowing themes to better handle how their captions are designed.
+ *
+ * This program is free software; you can redistribute it and/or modify it under the terms of the GNU 
+ * General Public License version 2, as published by the Free Software Foundation.  You may NOT assume 
+ * that you can use any other version of the GPL.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without 
+ * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * @package CleanerCaption
+ * @version 0.1.0
+ * @author Justin Tadlock <justin@justintadlock.com>
+ * @copyright Copyright (c) 2011, Justin Tadlock
+ * @link http://justintadlock.com
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ */
+
+/* Filter the caption shortcode output. */
+add_filter( 'img_caption_shortcode', 'cleaner_caption', 10, 3 );
+
+/**
+ * Cleans up the default WordPress [caption] shortcode.  The main purpose of this function is to remove the 
+ * inline styling WP adds, which creates 10px of padding around captioned elements.
+ *
+ * @since 0.1.0
+ * @param string $output The output of the default caption (empty string at this point).
+ * @param array $attr Array of arguments for the [caption] shortcode.
+ * @param string $content The content placed after the opening [caption] tag and before the closing [/caption] tag.
+ * @return string $output The formatted HTML for the caption.
+ */
+function cleaner_caption( $output, $attr, $content ) {
+
+	/* We're not worried abut captions in feeds, so just return the output here. */
+	if ( is_feed() )
+		return $output;
+
+	/* Set up the default arguments. */
+	$defaults = array(
+		'id' => '',
+		'align' => 'alignnone',
+		'width' => '',
+		'caption' => ''
+	);
+
+	/* Allow developers to override the default arguments. */
+	$defaults = apply_filters( 'cleaner_caption_defaults', $defaults );
+
+	/* Apply filters to the arguments. */
+	$attr = apply_filters( 'cleaner_caption_args', $attr );
+
+	/* Merge the defaults with user input. */
+	$attr = shortcode_atts( $defaults, $attr );
+
+	/* If the width is less than 1 or there is no caption, return the content wrapped between the [caption] tags. */
+	if ( 1 > $attr['width'] || empty( $attr['caption'] ) )
+		return $content;
+
+	/* Set up the attributes for the caption <div>. */
+	$attributes = ( !empty( $attr['id'] ) ? ' id="' . esc_attr( $attr['id'] ) . '"' : '' );
+	$attributes .= ' class="wp-caption ' . esc_attr( $attr['align'] ) . '"';
+	$attributes .= ' style="width: ' . esc_attr( $attr['width'] ) . 'px"';
+
+	/* Open the caption <div>. */
+	$output = '<div' . $attributes .'>';
+
+	/* Allow shortcodes for the content the caption was created for. */
+	$output .= do_shortcode( $content );
+
+	/* Append the caption text. */
+	$output .= '<p class="wp-caption-text">' . $attr['caption'] . '</p>';
+
+	/* Close the caption </div>. */
+	$output .= '</div>';
+
+	/* Return the formatted, clean caption. */
+	return apply_filters( 'cleaner_caption', $output );
+}
+
+?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/extensions/cleaner-gallery.php b/wp-content/themes/hybrid/library/extensions/cleaner-gallery.php
new file mode 100644
index 000000000..b99aef421
--- /dev/null
+++ b/wp-content/themes/hybrid/library/extensions/cleaner-gallery.php
@@ -0,0 +1,165 @@
+<?php
+/**
+ * Cleaner Gallery - A valid image gallery script for WordPress.
+ *
+ * Cleaner Gallery was created to clean up the invalid HTML and remove the inline styles of the default 
+ * implementation of the WordPress [gallery] shortcode.  This has the obvious benefits of creating 
+ * sites with clean, valid code.  But, it also allows developers to more easily create custom styles for 
+ * galleries within their themes.
+ *
+ * This program is free software; you can redistribute it and/or modify it under the terms of the GNU 
+ * General Public License version 2, as published by the Free Software Foundation.  You may NOT assume 
+ * that you can use any other version of the GPL.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without 
+ * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * @package CleanerGallery
+ * @version 0.9.2
+ * @author Justin Tadlock <justin@justintadlock.com>
+ * @copyright Copyright (c) 2008 - 2011, Justin Tadlock
+ * @link http://justintadlock.com/archives/2008/04/13/cleaner-wordpress-gallery-plugin
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ */
+
+/* Filter the post gallery shortcode output. */
+add_filter( 'post_gallery', 'cleaner_gallery', 10, 2 );
+
+/**
+ * Overwrites the default WordPress [gallery] shortcode's output.  This function removes the invalid 
+ * HTML and inline styles.  It adds the number of columns used as a class attribute, which allows 
+ * developers to style the gallery more easily.
+ *
+ * @since 0.9.0
+ * @param string $output
+ * @param array $attr
+ * @return string $output
+ */
+function cleaner_gallery( $output, $attr ) {
+	global $post;
+
+	static $cleaner_gallery_instance = 0;
+	$cleaner_gallery_instance++;
+
+	/* We're not worried abut galleries in feeds, so just return the output here. */
+	if ( is_feed() )
+		return $output;
+
+	/* Orderby. */
+	if ( isset( $attr['orderby'] ) ) {
+		$attr['orderby'] = sanitize_sql_orderby( $attr['orderby'] );
+		if ( !$attr['orderby'] )
+			unset( $attr['orderby'] );
+	}
+
+	/* Default gallery settings. */
+	$defaults = array(
+		'order' => 'ASC',
+		'orderby' => 'menu_order ID',
+		'id' => $post->ID,
+		'link' => '',
+		'itemtag' => 'dl',
+		'icontag' => 'dt',
+		'captiontag' => 'dd',
+		'columns' => 3,
+		'size' => 'thumbnail',
+		'include' => '',
+		'exclude' => '',
+		'numberposts' => -1,
+		'offset' => ''
+	);
+
+	/* Apply filters to the default arguments. */
+	$defaults = apply_filters( 'cleaner_gallery_defaults', $defaults );
+
+	/* Apply filters to the arguments. */
+	$attr = apply_filters( 'cleaner_gallery_args', $attr );
+
+	/* Merge the defaults with user input.  */
+	$attr = shortcode_atts( $defaults, $attr );
+	extract( $attr );
+	$id = intval( $id );
+
+	/* Arguments for get_children(). */
+	$children = array(
+		'post_parent' => $id,
+		'post_status' => 'inherit',
+		'post_type' => 'attachment',
+		'post_mime_type' => 'image',
+		'order' => $order,
+		'orderby' => $orderby,
+		'exclude' => $exclude,
+		'include' => $include,
+		'numberposts' => $numberposts,
+		'offset' => $offset,
+	);
+
+	/* Get image attachments. If none, return. */
+	$attachments = get_children( $children );
+
+	if ( empty( $attachments ) )
+		return '';
+
+	/* Properly escape the gallery tags. */
+	$itemtag = tag_escape( $itemtag );
+	$icontag = tag_escape( $icontag );
+	$captiontag = tag_escape( $captiontag );
+	$i = 0;
+
+	/* Count the number of attachments returned. */
+	$attachment_count = count( $attachments );
+
+	/* Allow developers to overwrite the number of columns. This can be useful for reducing columns with with fewer images than number of columns. */
+	//$columns = ( ( $columns <= $attachment_count ) ? intval( $columns ) : intval( $attachment_count ) );
+	$columns = apply_filters( 'cleaner_gallery_columns', intval( $columns ), $attachment_count, $attr );
+
+	/* Open the gallery <div>. */
+	$output = "\n\t\t\t<div id='gallery-{$id}-{$cleaner_gallery_instance}' class='gallery gallery-{$id}'>";
+
+	/* Loop through each attachment. */
+	foreach ( $attachments as $id => $attachment ) {
+
+		/* Open each gallery row. */
+		if ( $columns > 0 && $i % $columns == 0 )
+			$output .= "\n\t\t\t\t<div class='gallery-row clear'>";
+
+		/* Open each gallery item. */
+		$output .= "\n\t\t\t\t\t<{$itemtag} class='gallery-item col-{$columns}'>";
+
+		/* Open the element to wrap the image. */
+		$output .= "\n\t\t\t\t\t\t<{$icontag} class='gallery-icon'>";
+
+		/* Add the image. */
+		$image = ( ( isset( $attr['link'] ) && 'file' == $attr['link'] ) ? wp_get_attachment_link( $id, $size, false, false ) : wp_get_attachment_link( $id, $size, true, false ) );
+		$output .= apply_filters( 'cleaner_gallery_image', $image, $id, $attr, $cleaner_gallery_instance );
+
+		/* Close the image wrapper. */
+		$output .= "</{$icontag}>";
+
+		/* Get the caption. */
+		$caption = apply_filters( 'cleaner_gallery_caption', wptexturize( esc_html( $attachment->post_excerpt ) ), $id, $attr, $cleaner_gallery_instance );
+
+		/* If image caption is set. */
+		if ( !empty( $caption ) )
+			$output .= "\n\t\t\t\t\t\t<{$captiontag} class='gallery-caption'>{$caption}</{$captiontag}>";
+
+		/* Close individual gallery item. */
+		$output .= "\n\t\t\t\t\t</{$itemtag}>";
+
+		/* Close gallery row. */
+		if ( $columns > 0 && ++$i % $columns == 0 )
+			$output .= "\n\t\t\t\t</div>";
+	}
+
+	/* Close gallery row. */
+	if ( $columns > 0 && $i % $columns !== 0 )
+		$output .= "\n\t\t\t</div>";
+
+	/* Close the gallery <div>. */
+	$output .= "\n\t\t\t</div><!-- .gallery -->\n";
+
+	/* Return out very nice, valid HTML gallery. */
+	return $output;
+}
+
+?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/extensions/custom-field-series.php b/wp-content/themes/hybrid/library/extensions/custom-field-series.php
index 4ddc746fb..000be9b1f 100644
--- a/wp-content/themes/hybrid/library/extensions/custom-field-series.php
+++ b/wp-content/themes/hybrid/library/extensions/custom-field-series.php
@@ -1,41 +1,58 @@
 <?php
 /**
- * Functions for displaying a series of posts linked together
- * by a custom field called 'Series'.  Each post is listed that
- * belong to the same series of posts.
+ * Custom Field Series - A script for creating a series of posts by custom field.
  *
- * @copyright 2007 - 2010
- * @version 0.2.1
- * @author Justin Tadlock
- * @link http://justintadlock.com/archives/2007/11/01/wordpress-custom-fields-listing-a-series-of-posts
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ * Custom Field Series was created to allow users to add individual posts to a larger series of posts.  It was 
+ * created before WordPress made it easy for developers to create new taxonomies.  Ideally, one would use a 
+ * taxonomy to handle this functionality.  However, this method is lighter, provides an extremely simple 
+ * method for adding posts to a series, and offers backwards compatibility for people that have used this 
+ * method before.
+ *
+ * This program is free software; you can redistribute it and/or modify it under the terms of the GNU 
+ * General Public License version 2, as published by the Free Software Foundation.  You may NOT assume 
+ * that you can use any other version of the GPL.
  *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without 
+ * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  *
  * @package CustomFieldSeries
+ * @version 0.3.0
+ * @author Justin Tadlock <justin@justintadlock.com>
+ * @copyright Copyright (c) 2007 - 2011, Justin Tadlock
+ * @link http://justintadlock.com/archives/2007/11/01/wordpress-custom-fields-listing-a-series-of-posts
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
  */
 
+/* Create the meta box on the 'admin_menu' hook. */
+add_action( 'admin_menu', 'custom_field_series_create_meta_box' );
+
 /**
- * Grabs series by custom field.  Checks for other articles in the series.
- * Series identified custom field key 'Series' and unique value.
- *
- * @todo Fix the multiple hyphens in the series class.
- * @todo Allow filtering of title.
+ * Checks for a series of posts by the current post's metadata.  The function grabs the meta value for the 
+ * 'Series' meta key and checks if any posts have been given the same value.  If posts are found with this 
+ * meta key/value pair, the function adds them to an unordered list.
  *
- * @since 0.1
+ * @since 0.1.0
  * @param array $args Array of arguments.
  */
 function custom_field_series( $args = array() ) {
 	global $post;
 
-	$textdomain = hybrid_get_textdomain();
+	/* Set up a default textdomain. */
+	$textdomain = apply_filters( 'custom_field_series_textdomain', 'custom-field-series' );
+
+	/* Set $series to an empty string. */
+	$series = '';
 
-	$series_meta = get_metadata( 'post', $post->ID, 'Series', true );
+	/* Allow developers to overwrite the meta key used for the series name. */
+	$meta_key = apply_filters( 'custom_field_series_meta_key', 'Series' );
 
-	if ( $series_meta ) {
+	/* Get the series meta value for the post. */
+	$meta_value = get_post_meta( $post->ID, $meta_key, true );
 
+	/* If a meta value was found, create a list of posts in the series. */
+	if ( !empty( $meta_value ) ) {
+
+		/* Set up the default post query arguments. */
 		$defaults = array(
 			'order' => 'DESC',
 			'orderby' => 'ID',
@@ -43,47 +60,126 @@ function custom_field_series( $args = array() ) {
 			'exclude' => '',
 			'post_type' => 'any',
 			'numberposts' => -1,
-			'meta_key' => 'Series',
-			'meta_value' => $series_meta,
+			'meta_key' => $meta_key,
+			'meta_value' => $meta_value,
 			'echo' => true
 		);
 
+		/* Allow developers to override the arguments used. */
 		$args = apply_filters( 'custom_field_series_args', $args );
-
 		$args = wp_parse_args( $args, $defaults );
 
+		/* Get all posts in the current series. */
 		$series_posts = get_posts( $args );
 
-		if ( $series_posts ) {
+		/* If posts were found, display them. */
+		if ( !empty( $series_posts ) ) {
 
-			$class = str_replace( array( '_', ' ', '&nbsp;' ) , '-', $series_meta );
-			$class = preg_replace('/[^A-Za-z0-9-]/', '', $class );
-			$class = strtolower( $class );
+			/* Format the series class with the name of the series. */
+			$class = sanitize_html_class( sanitize_title_with_dashes( $meta_value ) );
 
-			$series = '<div class="series series-' . $class . '">';
-			$series .= '<h4 class="series-title">' . __( 'Articles in this series', $textdomain) . '</h4>';
+			/* Create the opening wrapper div, title, and list element. */
+			$series = '<div class="series series-' . esc_attr( $class ) . '">';
+			$series .= '<h4 class="series-title">' . apply_filters( 'custom_field_series_title', __( 'Articles in this series', $textdomain ) ) . '</h4>';
 			$series .= '<ul>';
 
+			/* Loop through the posts. */
 			foreach ( $series_posts as $serial ) {
 
+				/* If the current post in the loop matches the post we're viewing, don't link to it. */
 				if ( $serial->ID == $post->ID )
 					$series .= '<li class="current-post">' . $serial->post_title . '</li>';
 
+				/* Display a link to the post. */
 				else
 					$series .= '<li><a href="' . get_permalink( $serial->ID ) . '" title="' . esc_attr( $serial->post_title ) . '">' . $serial->post_title . '</a></li>';
 			}
 
+			/* Close the unordered list and wrapper div. */
 			$series .= '</ul></div>';
 		}
 	}
 
+	/* Allow developers to overwrite the HTML of the series. */
 	$series = apply_filters( 'custom_field_series', $series );
 
-	if ( $args['echo'] && $series )
+	/* If $echo is set to true, display the series. */
+	if ( !empty( $args['echo'] ) )
 		echo $series;
 
-	elseif ( $series )
+	/* If $echo is not set to true, return the series. */
+	else
 		return $series;
 }
 
+/**
+ * Creates the meta box on the post editing screen for the 'post' post type.
+ *
+ * @since 0.3.0
+ */
+function custom_field_series_create_meta_box() {
+
+	/* Set up a default textdomain. */
+	$textdomain = apply_filters( 'custom_field_series_textdomain', 'custom-field-series' );
+
+	add_meta_box( 'custom-field-series', __( 'Series', $textdomain ), 'custom_field_series_meta_box', 'post', 'side', 'default' );
+
+	/* Saves the post meta box data. */
+	add_action( 'save_post', 'custom_field_series_meta_box_save', 10, 2 );
+}
+
+/**
+ * Displays the input field with the meta box.
+ *
+ * @since 0.3.0
+ */
+function custom_field_series_meta_box( $object, $box ) { ?>
+
+	<p>
+		<input type="hidden" name="custom_field_series_meta_box_nonce" value="<?php echo wp_create_nonce( basename( __FILE__ ) ); ?>" />
+		<input type="text" name="custom-field-series" id="custom-field-series" value="<?php echo esc_attr( get_post_meta( $object->ID, apply_filters( 'custom_field_series_meta_key', 'Series' ), true ) ); ?>" size="30" tabindex="30" style="width: 99%;" />
+	</p>
+<?php
+}
+
+/**
+ * Saves the single value for the 'Series' meta key, which was set using the custom field series meta box.
+ *
+ * @since 0.3.0
+ */
+function custom_field_series_meta_box_save( $post_id, $post ) {
+
+	/* Verify the nonce before proceeding. */
+	if ( !isset( $_POST['custom_field_series_meta_box_nonce'] ) || !wp_verify_nonce( $_POST['custom_field_series_meta_box_nonce'], basename( __FILE__ ) ) )
+		return $post_id;
+
+	/* Get the post type object. */
+	$post_type = get_post_type_object( $post->post_type );
+
+	/* Check if the current user has permission to edit the post. */
+	if ( !current_user_can( $post_type->cap->edit_post, $post_id ) )
+		return $post_id;
+
+	/* Get the posted series title and strip all tags from it. */
+	$new_meta_value = ( isset( $_POST['custom-field-series'] ) ? strip_tags( $_POST['custom-field-series'] ) : '' );
+
+	/* Get the meta key. */
+	$meta_key = apply_filters( 'custom_field_series_meta_key', 'Series' );
+
+	/* Get the meta value of the custom field key. */
+	$meta_value = get_post_meta( $post_id, $meta_key, true );
+
+	/* If a new meta value was added and there was no previous value, add it. */
+	if ( $new_meta_value && '' == $meta_value )
+		add_post_meta( $post_id, $meta_key, $new_meta_value, true );
+
+	/* If the new meta value does not match the old value, update it. */
+	elseif ( $new_meta_value && $new_meta_value != $meta_value )
+		update_post_meta( $post_id, $meta_key, $new_meta_value );
+
+	/* If there is no new meta value but an old value exists, delete it. */
+	elseif ( '' == $new_meta_value && $meta_value )
+		delete_post_meta( $post_id, $meta_key, $meta_value );
+}
+
 ?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/extensions/entry-views.php b/wp-content/themes/hybrid/library/extensions/entry-views.php
new file mode 100644
index 000000000..544576e52
--- /dev/null
+++ b/wp-content/themes/hybrid/library/extensions/entry-views.php
@@ -0,0 +1,181 @@
+<?php
+/**
+ * Entry Views - A WordPress script for counting post views.
+ *
+ * Entry views is a script for calculating the number of views a post gets.  It is meant to be basic and 
+ * not a full-featured solution.  The idea is to allow theme/plugin authors to quickly load this file and 
+ * build functions on top of it to suit their project needs.  This is an AJAX-based solution, so only visitors 
+ * to your site with JavaScript enabled in their browser will update the view count.  It is possible to do this
+ * without AJAX but not recommend (see notes below).
+ *
+ * By default, no post types are supported.  You have to register support for 'entry-views' for the post types
+ * you wish to use this extension with.
+ *
+ * Not using AJAX: You can call up entry_views_update() at any time and pass it a post ID to update the 
+ * count, but this has problems.  Any links with rel="next" or rel="prefetch" will cause some browsers to prefetch
+ * the data for that particular page.  This can cause the view count to be skewed.  To try and avoid this 
+ * issue, you need to disable/remove adjacent_posts_rel_link_wp_head().  However, this is not bullet-proof 
+ * as it cannot control links it doesn't know about.
+ * @link http://core.trac.wordpress.org/ticket/14568
+ *
+ * This program is free software; you can redistribute it and/or modify it under the terms of the GNU 
+ * General Public License version 2, as published by the Free Software Foundation.  You may NOT assume 
+ * that you can use any other version of the GPL.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without 
+ * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * @package EntryViews
+ * @version 0.2.0
+ * @author Justin Tadlock <justin@justintadlock.com>
+ * @copyright Copyright (c) 2010 - 2011, Justin Tadlock
+ * @link http://justintadlock.com
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ */
+
+/* Add post type support for 'entry-views'. */
+add_action( 'init', 'entry_views_post_type_support' );
+
+/* Add the [entry-views] shortcode. */
+add_shortcode( 'entry-views', 'entry_views_get' );
+
+/* Registers the entry views extension scripts if we're on the correct page. */
+add_action( 'template_redirect', 'entry_views_load' );
+
+/* Add the entry views AJAX actions to the appropriate hooks. */
+add_action( 'wp_ajax_entry_views', 'entry_views_update_ajax' );
+add_action( 'wp_ajax_nopriv_entry_views', 'entry_views_update_ajax' );
+
+/**
+ * Adds support for 'entry-views' to the 'post', 'page', and 'attachment' post types (default WordPress 
+ * post types).  For all other post types, the theme should explicitly register support for this feature.
+ *
+ * @since 0.2.0
+ */
+function entry_views_post_type_support() {
+
+	/* Add support for entry-views to the 'post' post type. */
+	add_post_type_support( 'post', array( 'entry-views' ) );
+
+	/* Add support for entry-views to the 'page' post type. */
+	add_post_type_support( 'page', array( 'entry-views' ) );
+
+	/* Add support for entry-views to the 'attachment' post type. */
+	add_post_type_support( 'attachment', array( 'entry-views' ) );
+}
+
+/**
+ * Checks if we're on a singular post view and if the current post type supports the 'entry-views'
+ * extension.  If so, set the $post_id variable and load the needed JavaScript.
+ *
+ * @since 0.1.0
+ */
+function entry_views_load() {
+	global $entry_views;
+
+	/* Check if we're on a singular post view. */
+	if ( is_singular() ) {
+
+		/* Get the post object. */
+		$post = get_queried_object();
+
+		/* Check if the post type supports the 'entry-views' feature. */
+		if ( post_type_supports( $post->post_type, 'entry-views' ) ) {
+
+			/* Set the post ID for later use because we wouldn't want a custom query to change this. */
+			$entry_views->post_id = get_queried_object_id();
+
+			/* Enqueue the jQuery library. */
+			wp_enqueue_script( 'jquery' );
+
+			/* Load the entry views JavaScript in the footer. */
+			add_action( 'wp_footer', 'entry_views_load_scripts' );
+		}
+	}
+}
+
+/**
+ * Updates the number of views when on a singular view of a post.  This function uses post meta to store
+ * the number of views per post.  By default, the meta key is 'Views', but you can filter this with the 
+ * 'entry_views_meta_key' hook.
+ *
+ * @since 0.1.0
+ */
+function entry_views_update( $post_id = '' ) {
+
+	/* If we're on a singular view of a post, calculate the number of views. */
+	if ( !empty( $post_id ) ) {
+
+		/* Allow devs to override the meta key used. By default, this is 'Views'. */
+		$meta_key = apply_filters( 'entry_views_meta_key', 'Views' );
+
+		/* Get the number of views the post currently has. */
+		$old_views = get_post_meta( $post_id, $meta_key, true );
+
+		/* Add +1 to the number of current views. */
+		$new_views = absint( $old_views ) + 1;
+
+		/* Update the view count with the new view count. */
+		update_post_meta( $post_id, $meta_key, $new_views, $old_views );
+	}
+}
+
+/**
+ * Gets the number of views a specific post has.  It also doubles as a shortcode, which is called with the 
+ * [entry-views] format.
+ *
+ * @since 0.1.0
+ * @param array $attr Attributes for use in the shortcode.
+ */
+function entry_views_get( $attr = '' ) {
+
+	/* Merge the defaults and the given attributes. */
+	$attr = shortcode_atts( array( 'before' => '', 'after' => '', 'post_id' => get_the_ID() ), $attr );
+
+	/* Allow devs to override the meta key used. */
+	$meta_key = apply_filters( 'entry_views_meta_key', 'Views' );
+
+	/* Get the number of views the post has. */
+	$views = intval( get_post_meta( $attr['post_id'], $meta_key, true ) );
+
+	/* Returns the formatted number of views. */
+	return $attr['before'] . number_format_i18n( $views ) . $attr['after'];
+}
+
+/**
+ * Callback function hooked to 'wp_ajax_entry_views' and 'wp_ajax_nopriv_entry_views'.  It checks the
+ * AJAX nonce and passes the given $post_id to the entry views update function.
+ *
+ * @since 0.1.0
+ */
+function entry_views_update_ajax() {
+
+	/* Check the AJAX nonce to make sure this is a valid request. */
+	check_ajax_referer( 'entry_views_ajax' );
+
+	/* If the post ID is set, set it to the $post_id variable and make sure it's an integer. */
+	if ( isset( $_POST['post_id'] ) )
+		$post_id = absint( $_POST['post_id'] );
+
+	/* If $post_id isn't empty, pass it to the entry_views_update() function to update the view count. */
+	if ( !empty( $post_id ) )
+		entry_views_update( $post_id );
+}
+
+/**
+ * Displays a small script that sends an AJAX request for the page.  It passes the $post_id to the AJAX 
+ * callback function for updating the meta.
+ *
+ * @since 0.1.0
+ */
+function entry_views_load_scripts() {
+	global $entry_views;
+
+	/* Create a nonce for the AJAX request. */
+	$nonce = wp_create_nonce( 'entry_views_ajax' );
+
+	/* Display the JavaScript needed. */
+	echo '<script type="text/javascript">/* <![CDATA[ */ jQuery(document).ready( function() { jQuery.post( "' . admin_url( 'admin-ajax.php' ) . '", { action : "entry_views", _ajax_nonce : "' . $nonce . '", post_id : ' . $entry_views->post_id . ' } ); } ); /* ]]> */</script>' . "\n";
+}
+
+?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/extensions/get-the-image.php b/wp-content/themes/hybrid/library/extensions/get-the-image.php
index d5568cbc6..261f45945 100644
--- a/wp-content/themes/hybrid/library/extensions/get-the-image.php
+++ b/wp-content/themes/hybrid/library/extensions/get-the-image.php
@@ -1,42 +1,48 @@
 <?php
 /**
- * Get the Image was created to solve a problem in the WordPress community about how to handle
- * post-specific images. It was created to be a highly-intuitive image script that loads images that are 
- * related to specific posts in some way.  It creates an image-based representation of a WordPress 
- * post (or any post type).
+ * Get the Image - An advanced post image script for WordPress.
  *
- * @copyright 2008 - 2010
- * @version 0.5
- * @author Justin Tadlock
- * @link http://justintadlock.com/archives/2008/05/27/get-the-image-wordpress-plugin
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ * Get the Image was created to be a highly-intuitive image script that displays post-specific images (an 
+ * image-based representation of a post).  The script handles old-style post images via custom fields for 
+ * backwards compatibility.  It also supports WordPress' built-in featured image functionality.  On top of 
+ * those things, it can automatically set attachment images as the post image or scan the post content for 
+ * the first image element used.  It can also fall back to a given default image.
+ *
+ * This program is free software; you can redistribute it and/or modify it under the terms of the GNU 
+ * General Public License version 2, as published by the Free Software Foundation.  You may NOT assume 
+ * that you can use any other version of the GPL.
  *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without 
+ * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  *
  * @package GetTheImage
+ * @version 0.7.0
+ * @author Justin Tadlock <justin@justintadlock.com>
+ * @copyright Copyright (c) 2008 - 2011, Justin Tadlock
+ * @link http://justintadlock.com/archives/2008/05/27/get-the-image-wordpress-plugin
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
  */
 
-/* Adds theme support for post images. */
+/* Adds theme support for WordPress 'featured images'. */
 add_theme_support( 'post-thumbnails' );
 
 /* Delete the cache when a post or post metadata is updated. */
-add_action( 'save_post', 'get_the_image_delete_cache' );
-add_action( 'deleted_post_meta', 'get_the_image_delete_cache' );
-add_action( 'updated_post_meta', 'get_the_image_delete_cache' );
-add_action( 'added_post_meta', 'get_the_image_delete_cache' );
+add_action( 'save_post', 'get_the_image_delete_cache_by_post' );
+add_action( 'deleted_post_meta', 'get_the_image_delete_cache_by_meta', 10, 2 );
+add_action( 'updated_post_meta', 'get_the_image_delete_cache_by_meta', 10, 2 );
+add_action( 'added_post_meta', 'get_the_image_delete_cache_by_meta', 10, 2 );
 
 /**
- * This is a highly intuitive function that gets images.  It first calls for custom field keys. If no 
- * custom field key is set, check for the_post_thumbnail().  If no post image, check for images 
- * attached to post. Check for image order if looking for attached images.  Scan the post for 
- * images if $image_scan = true.  Check for default image if $default_image = true. If an image 
- * is found, call display_the_image() to format it.
+ * The main image function for displaying an image.  It supports several arguments that allow developers to
+ * customize how the script outputs the image.
  *
- * @since 0.1
- * @global $post The current post's DB object.
- * @param array $args Parameters for what image to get.
+ * The image check order is important to note here.  If an image is found by any specific check, the script
+ * will no longer look for images.  The check order is 'meta_key', 'the_post_thumbnail', 'attachment', 
+ * 'image_scan', 'callback', and 'default_image'.
+ *
+ * @since 0.1.0
+ * @global $post The current post's database object.
+ * @param array $args Arguments for how to load and display the image.
  * @return string|array The HTML for the image. | Image attributes in an array.
  */
 function get_the_image( $args = array() ) {
@@ -44,11 +50,10 @@ function get_the_image( $args = array() ) {
 
 	/* Set the default arguments. */
 	$defaults = array(
-		'custom_key' => array( 'Thumbnail', 'thumbnail' ),
+		'meta_key' => array( 'Thumbnail', 'thumbnail' ),
 		'post_id' => $post->ID,
 		'attachment' => true,
 		'the_post_thumbnail' => true, // WP 2.9+ image function
-		'default_size' => false, // Deprecated 0.5 in favor of $size
 		'size' => 'thumbnail',
 		'default_image' => false,
 		'order_of_image' => 1,
@@ -58,7 +63,12 @@ function get_the_image( $args = array() ) {
 		'width' => false,
 		'height' => false,
 		'format' => 'img',
-		'echo' => true
+		'meta_key_save' => false,
+		'callback' => null,
+		'cache' => true,
+		'echo' => true,
+		'custom_key' => null, // @deprecated 0.6. Use 'meta_key'.
+		'default_size' => null, // @deprecated 0.5.  Use 'size'.
 	);
 
 	/* Allow plugins/themes to filter the arguments. */
@@ -68,8 +78,12 @@ function get_the_image( $args = array() ) {
 	$args = wp_parse_args( $args, $defaults );
 
 	/* If $default_size is given, overwrite $size. */
-	if ( !empty( $args['default_size'] ) )
-		$args['size'] = $args['default_size'];
+	if ( !is_null( $args['default_size'] ) )
+		$args['size'] = $args['default_size']; // Deprecated 0.5 in favor of $size
+
+	/* If $custom_key is set, overwrite $meta_key. */
+	if ( !is_null( $args['custom_key'] ) )
+		$args['meta_key'] = $args['custom_key']; // Deprecated 0.6 in favor of $meta_key
 
 	/* If $format is set to 'array', don't link to the post. */
 	if ( 'array' == $args['format'] )
@@ -78,108 +92,145 @@ function get_the_image( $args = array() ) {
 	/* Extract the array to allow easy use of variables. */
 	extract( $args );
 
+	/* Get cache key based on $args. */
+	$key = md5( serialize( compact( array_keys( $args ) ) ) );
+
 	/* Check for a cached image. */
-	$cache = wp_cache_get( 'get_the_image' );
+	$image_cache = wp_cache_get( $post_id, 'get_the_image' );
 
-	if ( !is_array( $cache ) )
-		$cache = array();
+	if ( !is_array( $image_cache ) )
+		$image_cache = array();
 
 	/* If there is no cached image, let's see if one exists. */
-	if ( !isset( $cache[$post_id][$size] ) ) {
+	if ( !isset( $image_cache[$key] ) || empty( $cache ) ) {
 
 		/* If a custom field key (array) is defined, check for images by custom field. */
-		if ( $custom_key )
-			$image = image_by_custom_field( $args );
+		if ( !empty( $meta_key ) )
+			$image = get_the_image_by_meta_key( $args );
 
 		/* If no image found and $the_post_thumbnail is set to true, check for a post image (WP feature). */
-		if ( !$image && $the_post_thumbnail )
-			$image = image_by_the_post_thumbnail( $args );
+		if ( empty( $image ) && !empty( $the_post_thumbnail ) )
+			$image = get_the_image_by_post_thumbnail( $args );
 
 		/* If no image found and $attachment is set to true, check for an image by attachment. */
-		if ( !$image && $attachment )
-			$image = image_by_attachment( $args );
+		if ( empty( $image ) && !empty( $attachment ) )
+			$image = get_the_image_by_attachment( $args );
 
 		/* If no image found and $image_scan is set to true, scan the post for images. */
-		if ( !$image && $image_scan )
-			$image = image_by_scan( $args );
+		if ( empty( $image ) && !empty( $image_scan ) )
+			$image = get_the_image_by_scan( $args );
+
+		/* If no image found and a callback function was given. Callback function must pass back array of <img> attributes. */
+		if ( empty( $image ) && !is_null( $callback ) && function_exists( $callback ) )
+			$image = call_user_func( $callback, $args );
 
 		/* If no image found and a $default_image is set, get the default image. */
-		if ( !$image && $default_image )
-			$image = image_by_default( $args );
+		if ( empty( $image ) && !empty( $default_image ) )
+			$image = get_the_image_by_default( $args );
+
+		/* If an image was found. */
+		if ( !empty( $image ) ) {
 
-		/* If an image is returned, run it through the display function. */
-		if ( $image )
-			$image = display_the_image( $args, $image );
+			/* If $meta_key_save was set, save the image to a custom field. */
+			if ( !empty( $meta_key_save ) )
+				get_the_image_meta_key_save( $args, $image['src'] );
 
-		$cache[$post_id][$size] = $image;
-		wp_cache_set( 'get_the_image', $cache );
+			/* Format the image HTML. */
+			$image = get_the_image_format( $args, $image );
+
+			/* Set the image cache for the specific post. */
+			$image_cache[$key] = $image;
+			wp_cache_set( $post_id, $image_cache, 'get_the_image' );
+		}
 	}
+
+	/* If an image was already cached for the post and arguments, use it. */
 	else {
-		$image = $cache[$post_id][$size];
+		$image = $image_cache[$key];
 	}
 
 	/* Allow plugins/theme to override the final output. */
 	$image = apply_filters( 'get_the_image', $image );
 
-	/* Display the image if $echo is set to true and the $format isn't an array. Else, return the image. */
+	/* If $format is set to 'array', return an array of image attributes. */
 	if ( 'array' == $format ) {
+
+		/* Set up a default empty array. */
+		$out = array();
+
+		/* Get the image attributes. */
 		$atts = wp_kses_hair( $image, array( 'http' ) );
 
+		/* Loop through the image attributes and add them in key/value pairs for the return array. */
 		foreach ( $atts as $att )
 			$out[$att['name']] = $att['value'];
 
 		$out['url'] = $out['src']; // @deprecated 0.5 Use 'src' instead of 'url'.
+
+		/* Return the array of attributes. */
 		return $out;
 	}
-	elseif ( $echo )
-		echo $image;
-	else
+
+	/* Or, if $echo is set to false, return the formatted image. */
+	elseif ( false === $echo ) {
 		return $image;
+	}
+
+	/* Display the image if we get to this point. */
+	echo $image;
 }
 
 /* Internal Functions */
 
 /**
- * Calls images by custom field key.  Script loops through multiple custom field keys.
- * If that particular key is found, $image is set and the loop breaks.  If an image is 
- * found, it is returned.
+ * Calls images by custom field key.  Script loops through multiple custom field keys.  If that particular key 
+ * is found, $image is set and the loop breaks.  If an image is found, it is returned.
  *
- * @since 0.3
- * @param array $args
- * @return array|bool
+ * @since 0.7.0
+ * @param array $args Arguments for how to load and display the image.
+ * @return array|bool Array of image attributes. | False if no image is found.
  */
-function image_by_custom_field( $args = array() ) {
+function get_the_image_by_meta_key( $args = array() ) {
 
-	/* If $custom_key is a string, we want to split it by spaces into an array. */
-	if ( !is_array( $args['custom_key'] ) )
-		$args['custom_key'] = preg_split( '#\s+#', $args['custom_key'] );
+	/* If $meta_key is not an array. */
+	if ( !is_array( $args['meta_key'] ) ) {
 
-	/* If $custom_key is set, loop through each custom field key, searching for values. */
-	if ( isset( $args['custom_key'] ) ) {
-		foreach ( $args['custom_key'] as $custom ) {
-			$image = get_metadata( 'post', $args['post_id'], $custom, true );
-			if ( $image )
+		/* Get the image URL by the single meta key. */
+		$image = get_post_meta( $args['post_id'], $args['meta_key'], true );
+	}
+
+	/* If $meta_key is an array. */
+	elseif ( is_array( $args['meta_key'] ) ) {
+
+		/* Loop through each of the given meta keys. */
+		foreach ( $args['meta_key'] as $meta_key ) {
+
+			/* Get the image URL by the current meta key in the loop. */
+			$image = get_post_meta( $args['post_id'], $meta_key, true );
+
+			/* If an image was found, break out of the loop. */
+			if ( !empty( $image ) )
 				break;
 		}
 	}
 
 	/* If a custom key value has been given for one of the keys, return the image URL. */
-	if ( $image )
-		return array( 'url' => $image );
+	if ( !empty( $image ) )
+		return array( 'src' => $image );
 
 	return false;
 }
 
 /**
- * Checks for images using a custom version of the WordPress 2.9+ get_the_post_thumbnail()
- * function.  If an image is found, return it and the $post_thumbnail_id.  The WordPress function's
- * other filters are later added in the display_the_image() function.
+ * Checks for images using a custom version of the WordPress 2.9+ get_the_post_thumbnail() function.  
+ * If an image is found, return it and the $post_thumbnail_id.  The WordPress function's other filters are 
+ * later added in the display_the_image() function.
  *
- * @since 0.4
- * @param array $args
- * @return array|bool
+ * @since 0.7.0
+ * @param array $args Arguments for how to load and display the image.
+ * @return array|bool Array of image attributes. | False if no image is found.
  */
-function image_by_the_post_thumbnail( $args = array() ) {
+function get_the_image_by_post_thumbnail( $args = array() ) {
 
 	/* Check for a post image ID (set by WP as a custom field). */
 	$post_thumbnail_id = get_post_thumbnail_id( $args['post_id'] );
@@ -198,19 +249,18 @@ function image_by_the_post_thumbnail( $args = array() ) {
 	$alt = trim( strip_tags( get_post_field( 'post_excerpt', $post_thumbnail_id ) ) );
 
 	/* Return both the image URL and the post thumbnail ID. */
-	return array( 'url' => $image[0], 'post_thumbnail_id' => $post_thumbnail_id, 'alt' => $alt );
+	return array( 'src' => $image[0], 'post_thumbnail_id' => $post_thumbnail_id, 'alt' => $alt );
 }
 
 /**
- * Check for attachment images.  Uses get_children() to check if the post has images 
- * attached.  If image attachments are found, loop through each.  The loop only breaks 
- * once $order_of_image is reached.
+ * Check for attachment images.  Uses get_children() to check if the post has images attached.  If image 
+ * attachments are found, loop through each.  The loop only breaks once $order_of_image is reached.
  *
- * @since 0.3
- * @param array $args
- * @return array|bool
+ * @since 0.7.0
+ * @param array $args Arguments for how to load and display the image.
+ * @return array|bool Array of image attributes. | False if no image is found.
  */
-function image_by_attachment( $args = array() ) {
+function get_the_image_by_attachment( $args = array() ) {
 
 	/* Get attachments for the inputted $post_id. */
 	$attachments = get_children( array( 'post_parent' => $args['post_id'], 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order ID' ) );
@@ -227,6 +277,9 @@ function image_by_attachment( $args = array() ) {
 	if ( empty( $attachments ) && empty( $image ) )
 		return false;
 
+	/* Set the default iterator to 0. */
+	$i = 0;
+
 	/* Loop through each attachment. Once the $order_of_image (default is '1') is reached, break the loop. */
 	foreach ( $attachments as $id => $attachment ) {
 		if ( ++$i == $args['order_of_image'] ) {
@@ -237,70 +290,69 @@ function image_by_attachment( $args = array() ) {
 	}
 
 	/* Return the image URL. */
-	return array( 'url' => $image[0], 'alt' => $alt );
+	return array( 'src' => $image[0], 'alt' => $alt );
 }
 
 /**
- * Scans the post for images within the content.  Not called by default with get_the_image().
- * Shouldn't use if using large images within posts, better to use the other options.
+ * Scans the post for images within the content.  Not called by default with get_the_image().  Shouldn't use 
+ * if using large images within posts, better to use the other options.
  *
- * @since 0.3
- * @global $post The current post's DB object.
- * @param array $args
- * @return array|bool
+ * @since 0.7.0
+ * @param array $args Arguments for how to load and display the image.
+ * @return array|bool Array of image attributes. | False if no image is found.
  */
-function image_by_scan( $args = array() ) {
+function get_the_image_by_scan( $args = array() ) {
 
 	/* Search the post's content for the <img /> tag and get its URL. */
 	preg_match_all( '|<img.*?src=[\'"](.*?)[\'"].*?>|i', get_post_field( 'post_content', $args['post_id'] ), $matches );
 
 	/* If there is a match for the image, return its URL. */
-	if ( isset( $matches ) && $matches[1][0] )
-		return array( 'url' => $matches[1][0] );
+	if ( isset( $matches ) && !empty( $matches[1][0] ) )
+		return array( 'src' => $matches[1][0] );
 
 	return false;
 }
 
 /**
- * Used for setting a default image.  The function simply returns the image URL it was
- * given in an array.  Not used with get_the_image() by default.
+ * Used for setting a default image.  The function simply returns the image URL it was given in an array.  
+ * Not used with get_the_image() by default.
  *
- * @since 0.3
- * @param array $args
- * @return array
+ * @since 0.7.0
+ * @param array $args Arguments for how to load and display the image.
+ * @return array|bool Array of image attributes. | False if no image is found.
  */
-function image_by_default( $args = array() ) {
-	return array( 'url' => $args['default_image'] );
+function get_the_image_by_default( $args = array() ) {
+	return array( 'src' => $args['default_image'] );
 }
 
 /**
- * Formats an image with appropriate alt text and class.  Adds a link to the post if argument 
- * is set.  Should only be called if there is an image to display, but will handle it if not.
+ * Formats an image with appropriate alt text and class.  Adds a link to the post if argument is set.  Should 
+ * only be called if there is an image to display, but will handle it if not.
  *
- * @since 0.1
- * @param array $args
- * @param array $image Array of image info ($image, $classes, $alt, $caption).
+ * @since 0.7.0
+ * @param array $args Arguments for how to load and display the image.
+ * @param array $image Array of image attributes ($image, $classes, $alt, $caption).
  * @return string $image Formatted image (w/link to post if the option is set).
  */
-function display_the_image( $args = array(), $image = false ) {
+function get_the_image_format( $args = array(), $image = false ) {
 
 	/* If there is no image URL, return false. */
-	if ( empty( $image['url'] ) )
+	if ( empty( $image['src'] ) )
 		return false;
 
 	/* Extract the arguments for easy-to-use variables. */
 	extract( $args );
 
 	/* If there is alt text, set it.  Otherwise, default to the post title. */
-	$image_alt = ( ( $image['alt'] ) ? $image['alt'] : apply_filters( 'the_title', get_post_field( 'post_title', $post_id ) ) );
+	$image_alt = ( ( !empty( $image['alt'] ) ) ? $image['alt'] : apply_filters( 'the_title', get_post_field( 'post_title', $post_id ) ) );
 
 	/* If there is a width or height, set them as HMTL-ready attributes. */
 	$width = ( ( $width ) ? ' width="' . esc_attr( $width ) . '"' : '' );
 	$height = ( ( $height ) ? ' height="' . esc_attr( $height ) . '"' : '' );
 
 	/* Loop through the custom field keys and add them as classes. */
-	if ( is_array( $custom_key ) ) {
-		foreach ( $custom_key as $key )
+	if ( is_array( $meta_key ) ) {
+		foreach ( $meta_key as $key )
 			$classes[] = str_replace( ' ', '-', strtolower( $key ) );
 	}
 
@@ -312,44 +364,135 @@ function display_the_image( $args = array(), $image = false ) {
 	$class = join( ' ', array_unique( $classes ) );
 
 	/* If there is a $post_thumbnail_id, apply the WP filters normally associated with get_the_post_thumbnail(). */
-	if ( $image['post_thumbnail_id'] )
+	if ( !empty( $image['post_thumbnail_id'] ) )
 		do_action( 'begin_fetch_post_thumbnail_html', $post_id, $image['post_thumbnail_id'], $size );
 
 	/* Add the image attributes to the <img /> element. */
-	$html = '<img src="' . $image['url'] . '" alt="' . esc_attr( strip_tags( $image_alt ) ) . '" class="' . esc_attr( $class ) . '"' . $width . $height . ' />';
+	$html = '<img src="' . $image['src'] . '" alt="' . esc_attr( strip_tags( $image_alt ) ) . '" class="' . esc_attr( $class ) . '"' . $width . $height . ' />';
 
 	/* If $link_to_post is set to true, link the image to its post. */
 	if ( $link_to_post )
 		$html = '<a href="' . get_permalink( $post_id ) . '" title="' . esc_attr( apply_filters( 'the_title', get_post_field( 'post_title', $post_id ) ) ) . '">' . $html . '</a>';
 
 	/* If there is a $post_thumbnail_id, apply the WP filters normally associated with get_the_post_thumbnail(). */
-	if ( $image['post_thumbnail_id'] )
+	if ( !empty( $image['post_thumbnail_id'] ) )
 		do_action( 'end_fetch_post_thumbnail_html', $post_id, $image['post_thumbnail_id'], $size );
 
 	/* If there is a $post_thumbnail_id, apply the WP filters normally associated with get_the_post_thumbnail(). */
-	if ( $image['post_thumbnail_id'] )
+	if ( !empty( $image['post_thumbnail_id'] ) )
 		$html = apply_filters( 'post_thumbnail_html', $html, $post_id, $image['post_thumbnail_id'], $size, '' );
 
 	return $html;
 }
 
 /**
- * Deletes the image cache for users that are using a persistent-caching plugin.
+ * Saves the image URL as the value of the meta key provided.  This allows users to set a custom meta key 
+ * for their image.  By doing this, users can trim off database queries when grabbing attachments or get rid 
+ * of expensive scans of the content when using the image scan feature.
  *
- * @since 0.5
+ * @since 0.6.0
+ * @param array $args Arguments for how to load and display the image.
+ * @param array $image Array of image attributes ($image, $classes, $alt, $caption).
  */
-function get_the_image_delete_cache() {
-	wp_cache_delete( 'get_the_image' );
+function get_the_image_meta_key_save( $args = array(), $image = array() ) {
+
+	/* If the $meta_key_save argument is empty or there is no image $url given, return. */
+	if ( empty( $args['meta_key_save'] ) || empty( $image['src'] ) )
+		return;
+
+	/* Get the current value of the meta key. */
+	$meta = get_post_meta( $args['post_id'], $args['meta_key_save'], true );
+
+	/* If there is no value for the meta key, set a new value with the image $url. */
+	if ( empty( $meta ) )
+		add_post_meta( $args['post_id'], $args['meta_key_save'], $image['src'] );
+
+	/* If the current value doesn't match the image $url, update it. */
+	elseif ( $meta !== $image['src'] )
+		update_post_meta( $args['post_id'], $args['meta_key_save'], $image['src'], $meta );
+}
+
+/**
+ * Deletes the image cache for the specific post when the 'save_post' hook is fired.
+ *
+ * @since 0.7.0
+ */
+function get_the_image_delete_cache_by_post( $post_id ) {
+	wp_cache_delete( $post_id, 'get_the_image' );
 }
 
 /**
- * Get the image with a link to the post.  Use get_the_image() instead.
+ * Deletes the image cache for a specific post when the 'added_post_meta', 'deleted_post_meta', 
+ * or 'updated_post_meta' hooks are called.
  *
- * @since 0.1
- * @deprecated 0.3
+ * @since 0.7.0
+ */
+function get_the_image_delete_cache_by_meta( $meta_id, $post_id ) {
+	wp_cache_delete( $post_id, 'get_the_image' );
+}
+
+/**
+ * @since 0.1.0
+ * @deprecated 0.3.0
  */
 function get_the_image_link( $deprecated = '', $deprecated_2 = '', $deprecated_3 = '' ) {
 	get_the_image();
 }
 
+/**
+ * @since 0.3.0
+ * @deprecated 0.7.0
+ */
+function image_by_custom_field( $args = array() ) {
+	return get_the_image_by_meta_key( $args );
+}
+
+/**
+ * @since 0.4.0
+ * @deprecated 0.7.0
+ */
+function image_by_the_post_thumbnail( $args = array() ) {
+	return get_the_image_by_post_thumbnail( $args );
+}
+
+/**
+ * @since 0.3.0
+ * @deprecated 0.7.0
+ */
+function image_by_attachment( $args = array() ) {
+	return get_the_image_by_attachment( $args );
+}
+
+/**
+ * @since 0.3.0
+ * @deprecated 0.7.0
+ */
+function image_by_scan( $args = array() ) {
+	return get_the_image_by_scan( $args );
+}
+
+/**
+ * @since 0.3.0
+ * @deprecated 0.7.0
+ */
+function image_by_default( $args = array() ) {
+	return get_the_image_by_default( $args );
+}
+
+/**
+ * @since 0.1.0
+ * @deprecated 0.7.0
+ */
+function display_the_image( $args = array(), $image = false ) {
+	return get_the_image_format( $args, $image );
+}
+
+/**
+ * @since 0.5.0
+ * @deprecated 0.7.0 Replaced by cache delete functions specifically for the post ID.
+ */
+function get_the_image_delete_cache() {
+	return;
+}
+
 ?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/extensions/loop-pagination.php b/wp-content/themes/hybrid/library/extensions/loop-pagination.php
new file mode 100644
index 000000000..6909d00ba
--- /dev/null
+++ b/wp-content/themes/hybrid/library/extensions/loop-pagination.php
@@ -0,0 +1,104 @@
+<?php
+/**
+ * Loop Pagination - A WordPress script for creating paginated links on archive-type pages.
+ *
+ * The Loop Pagination script was designed to give theme authors a quick way to paginate archive-type 
+ * (archive, search, and blog) pages without having to worry about which of the many plugins a user might 
+ * possibly be using.  Instead, they can simply build pagination right into their themes.
+ *
+ * This program is free software; you can redistribute it and/or modify it under the terms of the GNU 
+ * General Public License version 2, as published by the Free Software Foundation.  You may NOT assume 
+ * that you can use any other version of the GPL.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without 
+ * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * @package LoopPagination
+ * @version 0.1.3
+ * @author Justin Tadlock <justin@justintadlock.com>
+ * @copyright Copyright (c) 2010 - 2011, Justin Tadlock
+ * @link http://devpress.com/blog/loop-pagination-for-theme-developers
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ */
+
+/**
+ * Loop pagination function for paginating loops with multiple posts.  This should be used on archive, blog, and 
+ * search pages.  It is not for singular views.
+ *
+ * @since 0.1.0
+ * @uses paginate_links() Creates a string of paginated links based on the arguments given.
+ * @param array $args Arguments to customize how the page links are output.
+ */
+function loop_pagination( $args = array() ) {
+	global $wp_rewrite, $wp_query, $post;
+
+	/* If there's not more than one page, return nothing. */
+	if ( 1 >= $wp_query->max_num_pages )
+		return;
+
+	/* Get the current page. */
+	$current = ( get_query_var( 'paged' ) ? absint( get_query_var( 'paged' ) ) : 1 );
+
+	/* Get the max number of pages. */
+	$max_num_pages = intval( $wp_query->max_num_pages );
+
+	/* Set up some default arguments for the paginate_links() function. */
+	$defaults = array(
+		'base' => add_query_arg( 'paged', '%#%' ),
+		'format' => '',
+		'total' => $max_num_pages,
+		'current' => $current,
+		'prev_next' => true,
+		//'prev_text' => __( '&laquo; Previous' ), // This is the WordPress default.
+		//'next_text' => __( 'Next &raquo;' ), // This is the WordPress default.
+		'show_all' => false,
+		'end_size' => 1,
+		'mid_size' => 1,
+		'add_fragment' => '',
+		'type' => 'plain',
+		'before' => '<div class="pagination loop-pagination">', // Begin loop_pagination() arguments.
+		'after' => '</div>',
+		'echo' => true,
+	);
+
+	/* Add the $base argument to the array if the user is using permalinks. */
+	if( $wp_rewrite->using_permalinks() )
+		$defaults['base'] = user_trailingslashit( trailingslashit( get_pagenum_link() ) . 'page/%#%' );
+
+	/* If we're on a search results page, we need to change this up a bit. */
+	if ( is_search() ) {
+		$search_permastruct = $wp_rewrite->get_search_permastruct();
+		if ( !empty( $search_permastruct ) )
+			$defaults['base'] = user_trailingslashit( trailingslashit( get_search_link() ) . 'page/%#%' );
+	}
+
+	/* Allow developers to overwrite the arguments with a filter. */
+	$args = apply_filters( 'loop_pagination_args', $args );
+
+	/* Merge the arguments input with the defaults. */
+	$args = wp_parse_args( $args, $defaults );
+
+	/* Don't allow the user to set this to an array. */
+	if ( 'array' == $args['type'] )
+		$args['type'] = 'plain';
+
+	/* Get the paginated links. */
+	$page_links = paginate_links( $args );
+
+	/* Remove 'page/1' from the entire output since it's not needed. */
+	$page_links = str_replace( array( '&#038;paged=1\'', '/page/1\'', '/page/1/\'' ), '\'', $page_links );
+
+	/* Wrap the paginated links with the $before and $after elements. */
+	$page_links = $args['before'] . $page_links . $args['after'];
+
+	/* Allow devs to completely overwrite the output. */
+	$page_links = apply_filters( 'loop_pagination', $page_links );
+
+	/* Return the paginated links for use in themes. */
+	if ( $args['echo'] )
+		echo $page_links;
+	else
+		return $page_liks;
+}
+
+?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/extensions/post-stylesheets.php b/wp-content/themes/hybrid/library/extensions/post-stylesheets.php
new file mode 100644
index 000000000..8bfe27e58
--- /dev/null
+++ b/wp-content/themes/hybrid/library/extensions/post-stylesheets.php
@@ -0,0 +1,164 @@
+<?php
+/**
+ * Post Stylesheets - A WordPress script for post-specific stylesheets.
+ *
+ * Post Stylesheets allows users and developers to add unique, per-post stylesheets.  This script was 
+ * created so that custom stylesheet files could be dropped into a theme's '/css' folder and loaded for 
+ * individual posts using the 'Stylesheet' post meta key and the stylesheet name as the post meta value.
+ *
+ * This program is free software; you can redistribute it and/or modify it under the terms of the GNU 
+ * General Public License version 2, as published by the Free Software Foundation.  You may NOT assume 
+ * that you can use any other version of the GPL.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without 
+ * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * @package PostStylesheets
+ * @version 0.2.0
+ * @author Justin Tadlock <justin@justintadlock.com>
+ * @copyright Copyright (c) 2010 - 2011, Justin Tadlock
+ * @link http://justintadlock.com
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ */
+
+/* Filters stylesheet_uri with a function for adding a new style. */
+add_filter( 'stylesheet_uri', 'post_stylesheets_stylesheet_uri', 10, 2 );
+
+/* Create the post stylesheets meta box on the 'admin_menu' hook. */
+add_action( 'admin_menu', 'post_stylesheets_create_meta_box' );
+
+/**
+ * Checks if a post (or any post type) has the given meta key of 'Stylesheet' when on the singular view of 
+ * the post on the front of the site.  If found, the function checks within the '/css' folder of the stylesheet 
+ * directory (child theme) and the template directory (parent theme).  If the file exists, it is used rather 
+ * than the typical style.css file.
+ *
+ * @since 0.1.0
+ */
+function post_stylesheets_stylesheet_uri( $stylesheet_uri, $stylesheet_dir_uri ) {
+
+	/* Check if viewing a singular post. */
+	if ( is_singular() ) {
+
+		/* Check if the user has set a value for the post stylesheet. */
+		$stylesheet = get_post_stylesheet( get_queried_object_id() );
+
+		/* If a meta value was given and the file exists, set $stylesheet_uri to the new file. */
+		if ( !empty( $stylesheet ) ) {
+
+			/* If the stylesheet is found in the child theme '/css' folder, use it. */
+			if ( file_exists( trailingslashit( get_stylesheet_directory() ) . "css/{$stylesheet}" ) )
+				$stylesheet_uri = trailingslashit( $stylesheet_dir_uri ) . "css/{$stylesheet}";
+
+			/* Else, if the stylesheet is found in the parent theme '/css' folder, use it. */
+			elseif ( file_exists( trailingslashit( get_template_directory() ) . "css/{$stylesheet}" ) )
+				$stylesheet_uri = trailingslashit( get_template_directory_uri() ) . "css/{$stylesheet}";
+		}
+	}
+
+	/* Return the stylesheet URI. */
+	return $stylesheet_uri;
+}
+
+/**
+ * Returns the post stylesheet if one is saved as post metadata.
+ *
+ * @since 0.3.0
+ * @param int $post_id The ID of the post to get the stylesheet for.
+ * @return string|bool Stylesheet name if given.  False for no stylesheet.
+ */
+function get_post_stylesheet( $post_id ) {
+	return get_post_meta( $post_id, apply_filters( 'post_stylesheets_meta_key', 'Stylesheet' ), true );
+}
+
+/**
+ * Adds/updates the post stylesheet for a specific post.
+ *
+ * @since 0.3.0
+ * @param int $post_id The ID of the post to set the stylesheet for.
+ * @param string $stylesheet The filename of the stylesheet.
+ */
+function set_post_stylesheet( $post_id, $stylesheet ) {
+	return update_post_meta( $post_id, apply_filters( 'post_stylesheets_meta_key', 'Stylesheet' ), $stylesheet );
+}
+
+/**
+ * Checks if a post has a specific post stylesheet.
+ *
+ * @since 0.3.0
+ * @param string $stylesheet The filename of the stylesheet.
+ * @param int $post_id The ID of the post to check.
+ * @return bool True|False depending on whether the post has the stylesheet.
+ */
+function has_post_stylesheet( $stylesheet, $post_id = '' ) {
+
+	/* If no post ID is given, use WP's get_the_ID() to get it and assume we're in the post loop. */
+	if ( empty( $post_id ) )
+		$post_id = get_the_ID();
+
+	/* Return true/false based on whether the stylesheet matches. */
+	return ( $stylesheet == get_post_stylesheet( $post_id ) ? true : false );
+}
+
+/**
+ * Creates the post stylesheets meta box.
+ *
+ * @since 0.2.0
+ */
+function post_stylesheets_create_meta_box() {
+
+	/* Get all available 'public' post types. */
+	$post_types = get_post_types( array( 'public' => true ), 'objects' );
+
+	/* Loop through each of the public post types and add the meta box to it. */
+	foreach ( $post_types as $type )
+		add_meta_box( "post-stylesheets", sprintf( __( '%s Stylesheet', apply_filters( 'post_stylesheets_textdomain', 'post-stylesheets' ) ), $type->labels->singular_name ), 'post_stylesheets_meta_box', $type->name, 'side', 'default' );
+
+	/* Saves the post meta box data. */
+	add_action( 'save_post', 'post_stylesheets_meta_box_save', 10, 2 );
+}
+
+/**
+ * Displays the input field for entering a custom stylesheet.
+ *
+ * @since 0.2.0
+ */
+function post_stylesheets_meta_box( $object, $box ) { ?>
+
+	<p>
+		<input type="hidden" name="post_stylesheets_meta_box_nonce" value="<?php echo wp_create_nonce( basename( __FILE__ ) ); ?>" />
+		<input type="text" class="widefat" name="post-stylesheets" id="post-stylesheets" value="<?php echo esc_attr( get_post_stylesheet( $object->ID ) ); ?>" />
+	</p>
+<?php
+}
+
+/**
+ * Saves the user-selected post stylesheet on the 'save_post' hook.
+ *
+ * @since 0.2.0
+ */
+function post_stylesheets_meta_box_save( $post_id, $post ) {
+
+	/* Verify the nonce before proceeding. */
+	if ( !isset( $_POST["post_stylesheets_meta_box_nonce"] ) || !wp_verify_nonce( $_POST["post_stylesheets_meta_box_nonce"], basename( __FILE__ ) ) )
+		return $post_id;
+
+	/* Get the post type object. */
+	$post_type = get_post_type_object( $post->post_type );
+
+	/* Check if the current user has permission to edit the post. */
+	if ( !current_user_can( $post_type->cap->edit_post, $post_id ) )
+		return $post_id;
+
+	/* Get the previous post stylesheet. */
+	$old_stylesheet = get_post_stylesheet( $post_id );
+
+	/* Get the submitted post stylesheet. */
+	$new_stylesheet = esc_attr( strip_tags( $_POST['post-stylesheets'] ) );
+
+	/* If the old stylesheet doesn't match the new stylesheet, update the post stylesheet meta. */
+	if ( $old_stylesheet !== $new_stylesheet )
+		set_post_stylesheet( $post_id, $new_stylesheet );
+}
+
+?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/extensions/theme-layouts.php b/wp-content/themes/hybrid/library/extensions/theme-layouts.php
new file mode 100644
index 000000000..0a27f7101
--- /dev/null
+++ b/wp-content/themes/hybrid/library/extensions/theme-layouts.php
@@ -0,0 +1,399 @@
+<?php
+/**
+ * Theme Layouts - A WordPress script for creating dynamic layouts.
+ *
+ * Theme Layouts was created to allow theme developers to easily style themes with dynamic layout 
+ * structures.  It gives users the ability to control how each post (or any post type) is displayed on the 
+ * front end of the site.  The layout can also be filtered for any page of a WordPress site.  
+ *
+ * The script will filter the WordPress body_class to provide a layout class for the given page.  Themes 
+ * must support this hook or its accompanying body_class() function for the Theme Layouts script to work. 
+ * Themes must also handle the CSS based on the layout class.  This script merely provides the logic.  The 
+ * design should be handled on a theme-by-theme basis.
+ *
+ * This program is free software; you can redistribute it and/or modify it under the terms of the GNU 
+ * General Public License version 2, as published by the Free Software Foundation.  You may NOT assume 
+ * that you can use any other version of the GPL.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without 
+ * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * @package ThemeLayouts
+ * @version 0.3.0
+ * @author Justin Tadlock <justin@justintadlock.com>
+ * @copyright Copyright (c) 2010 - 2011, Justin Tadlock
+ * @link http://justintadlock.com
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ */
+
+/* Filters the body_class hook to add a custom class. */
+add_filter( 'body_class', 'theme_layouts_body_class' );
+
+/* Set up the custom post layouts. */
+add_action( 'admin_menu', 'theme_layouts_admin_setup' );
+
+/**
+ * Gets the layout for the current post based off the 'Layout' custom field key if viewing a singular post 
+ * entry.  All other pages are given a default layout of 'layout-default'.
+ *
+ * @since 0.2.0
+ * @return string The layout for the given page.
+ */
+function theme_layouts_get_layout() {
+
+	/* Get the available post layouts. */
+	$post_layouts = get_theme_support( 'theme-layouts' );
+
+	/* Set the layout to an empty string. */
+	$layout = '';
+
+	/* If viewing a singular post, check if a layout has been specified. */
+	if ( is_singular() ) {
+
+		/* Get the current post ID. */
+		$post_id = get_queried_object_id();
+
+		/* Get the post layout. */
+		$layout = get_post_layout( $post_id );
+	}
+
+	/* If viewing a user/author archive, check if a layout has been specified. */
+	elseif ( is_author() ) {
+
+		/* Get the current user ID. */
+		$user_id = get_queried_object_id();
+
+		/* Get the user layout. */
+		$layout = get_user_layout( $user_id );
+	}
+
+	/* Make sure the given layout is in the array of available post layouts for the theme. */
+	if ( empty( $layout ) || !in_array( $layout, $post_layouts[0] ) )
+		$layout = 'default';
+
+	/* @deprecated 0.2.0. Use the 'get_theme_layout' hook. */
+	$layout = apply_filters( 'get_post_layout', "layout-{$layout}" );
+
+	/* Return the layout and allow plugin/theme developers to override it. */
+	return esc_attr( apply_filters( 'get_theme_layout', $layout ) );
+}
+
+/**
+ * Get the post layout based on the given post ID.
+ *
+ * @since 0.2.0
+ * @param int $post_id The ID of the post to get the layout for.
+ * @return string $layout The name of the post's layout.
+ */
+function get_post_layout( $post_id ) {
+
+	/* Get the post layout. */
+	$layout = get_post_meta( $post_id, apply_filters( 'theme_layouts_meta_key', 'Layout' ), true );
+
+	/* Return the layout if one is found.  Otherwise, return 'default'. */
+	return ( !empty( $layout ) ? $layout : 'default' );
+}
+
+/**
+ * Update/set the post layout based on the given post ID and layout.
+ *
+ * @since 0.2.0
+ * @param int $post_id The ID of the post to set the layout for.
+ * @param string $layout The name of the layout to set.
+ * @return bool The return value of the update_post_meta() function.
+ */
+function set_post_layout( $post_id, $layout ) {
+	return update_post_meta( $post_id, apply_filters( 'theme_layouts_meta_key', 'Layout' ), $layout );
+}
+
+/**
+ * Checks if a specific post's layout matches that of the given layout.
+ *
+ * @since 0.3.0
+ * @param string $layout The name of the layout to check if the post has.
+ * @param int $post_id The ID of the post to check the layout for.
+ * @return bool Whether the given layout matches the post's layout.
+ */
+function has_post_layout( $layout, $post_id = '' ) {
+
+	/* If no post ID is given, use WP's get_the_ID() to get it and assume we're in the post loop. */
+	if ( empty( $post_id ) )
+		$post_id = get_the_ID();
+
+	/* Return true/false based on whether the layout matches. */
+	return ( $layout == get_post_layout( $post_id ) ? true : false );
+}
+
+/**
+ * Get the layout for a user/author archive page based on a specific user ID.
+ *
+ * @since 0.3.0
+ * @param int $user_id The ID of the user to get the layout for.
+ */
+function get_user_layout( $user_id ) {
+
+	/* Get the user layout. */
+	$layout = get_user_meta( $user_id, apply_filters( 'theme_layouts_meta_key', 'Layout' ), true );
+
+	/* Return the layout if one is found.  Otherwise, return 'default'. */
+	return ( !empty( $layout ) ? $layout : 'default' );
+}
+
+/**
+ * Update/set the layout for a user/author archive paged based on the user ID.
+ *
+ * @since 0.3.0
+ * @param int $user_id The ID of the user to set the layout for.
+ * @param string $layout The name of the layout to set.
+ * @return bool The return value of update_user_meta() function.
+ */
+function set_user_layout( $user_id, $layout ) {
+	return update_user_meta( $user_id, apply_filters( 'theme_layouts_meta_key', 'Layout' ), $layout );
+}
+
+/**
+ * Checks if a specific user's layout matches that of the given layout.
+ *
+ * @since 0.3.0
+ * @param string $layout The name of the layout to check if the user has.
+ * @param int $user_id The ID of the user to check the layout for.
+ * @return bool Whether the given layout matches the user's layout.
+ */
+function has_user_layout( $layout, $user_id = '' ) {
+
+	/* If no user ID is given, assume we're viewing an author archive page and get the user ID. */
+	if ( empty( $user_id ) )
+		$user_id = get_query_var( 'author' );
+
+	/* Return true/false based on whether the layout matches. */
+	return ( $layout == get_user_layout( $user_id ) ? true : false );
+}
+
+/**
+ * Adds the post layout class to the WordPress body class in the form of "layout-$layout".  This allows 
+ * theme developers to design their theme layouts based on the layout class.  If designing a theme with 
+ * this extension, the theme should make sure to handle all possible layout classes.
+ *
+ * @since 0.2.0
+ * @param array $classes
+ * @param array $classes
+ */
+function theme_layouts_body_class( $classes ) {
+
+	/* Adds the layout to array of body classes. */
+	$classes[] = sanitize_html_class( theme_layouts_get_layout() );
+
+	/* Return the $classes array. */
+	return $classes;
+}
+
+/**
+ * Creates default text strings based on the default post layouts.  Theme developers that add custom 
+ * layouts should filter 'post_layouts_strings' to add strings to match the custom layouts, but it's not 
+ * required.  The layout name will be used if no text string is found.
+ *
+ * @since 0.2.0
+ */
+function theme_layouts_strings() {
+
+	/* Set up the default layout strings. */
+	$strings = array(
+		'default' => 	__( 'Default', theme_layouts_textdomain() ),
+		'1c' => 		__( 'One Column', theme_layouts_textdomain() ),
+		'2c-l' => 		__( 'Two Columns, Left', theme_layouts_textdomain() ),
+		'2c-r' => 	__( 'Two Columns, Right', theme_layouts_textdomain() ),
+		'3c-l' => 		__( 'Three Columns, Left', theme_layouts_textdomain() ),
+		'3c-r' => 	__( 'Three Columns, Right', theme_layouts_textdomain() ),
+		'3c-c' => 	__( 'Three Columns, Center', theme_layouts_textdomain() )
+	);
+
+	/* Allow devs to filter the strings for custom layouts. */
+	return apply_filters( 'theme_layouts_strings', $strings );
+}
+
+/**
+ * Get a specific layout's text string.
+ *
+ * @since 0.2.0
+ */
+function theme_layouts_get_string( $layout ) {
+
+	/* Get an array of post layout strings. */
+	$strings = theme_layouts_strings();
+
+	/* Return the layout's string if it exists. Else, return the layout slug. */
+	return ( ( isset( $strings[$layout] ) ) ? $strings[$layout] : $layout );
+}
+
+/**
+ * Post layouts admin setup.  Registers the post layouts meta box for the post editing screen.  Adds the 
+ * metadata save function to the 'save_post' hook.
+ *
+ * @since 0.2.0
+ */
+function theme_layouts_admin_setup() {
+
+	/* Gets available public post types. */
+	$post_types = get_post_types( array( 'public' => true ), 'objects' );
+
+	/* For each available post type, create a meta box on its edit page if it supports '$prefix-post-settings'. */
+	foreach ( $post_types as $type )
+		add_meta_box( 'theme-layouts-post-meta-box', __( 'Layout', theme_layouts_textdomain() ), 'theme_layouts_post_meta_box', $type->name, 'side', 'default' );
+
+	/* Saves the post format on the post editing page. */
+	add_action( 'save_post', 'theme_layouts_save_post', 10, 2 );
+
+	/* Adds a theme layout <select> element to the attachment edit form. */
+	add_filter( 'attachment_fields_to_edit', 'theme_layouts_attachment_fields_to_edit', 10, 2 );
+
+	/* Saves the theme layout for attachments. */
+	add_filter( 'attachment_fields_to_save', 'theme_layouts_attachment_fields_to_save', 10, 2 );
+}
+
+/**
+ * Displays a meta box of radio selectors on the post editing screen, which allows theme users to select 
+ * the layout they wish to use for the specific post.
+ *
+ * @since 0.2.0
+ */
+function theme_layouts_post_meta_box( $post, $box ) {
+
+	/* Get theme-supported theme layouts. */
+	$layouts = get_theme_support( 'theme-layouts' );
+	$post_layouts = $layouts[0];
+
+	/* Get the current post's layout. */
+	$post_layout = get_post_layout( $post->ID ); ?>
+
+	<div class="post-layout">
+
+		<input type="hidden" name="theme_layouts_post_meta_box_nonce" value="<?php echo wp_create_nonce( basename( __FILE__ ) ); ?>" />
+
+		<p><?php _e( 'Layout is a theme-specific structure for the single view of the post.', theme_layouts_textdomain() ); ?></p>
+
+		<div class="post-layout-wrap">
+			<ul>
+				<li><input type="radio" name="post_layout" id="post_layout_default" value="default" <?php checked( $post_layout, 'default' );?> /> <label for="post_layout_default"><?php echo esc_html( theme_layouts_get_string( 'default' ) ); ?></label></li>
+
+				<?php foreach ( $post_layouts as $layout ) { ?>
+					<li><input type="radio" name="post_layout" id="post_layout_<?php echo esc_attr( $layout ); ?>" value="<?php echo esc_attr( $layout ); ?>" <?php checked( $post_layout, $layout ); ?> /> <label for="post_layout_<?php echo esc_attr( $layout ); ?>"><?php echo esc_html( theme_layouts_get_string( $layout ) ); ?></label></li>
+				<?php } ?>
+			</ul>
+		</div>
+	</div><?php
+}
+
+/**
+ * Saves the post layout metadata if on the post editing screen in the admin.
+ *
+ * @since 0.2.0
+ */
+function theme_layouts_save_post( $post_id, $post ) {
+
+	/* Verify the nonce for the post formats meta box. */
+	if ( !isset( $_POST['theme_layouts_post_meta_box_nonce'] ) || !wp_verify_nonce( $_POST['theme_layouts_post_meta_box_nonce'], basename( __FILE__ ) ) )
+		return $post_id;
+
+	/* Get the post type object. */
+	$post_type = get_post_type_object( $post->post_type );
+
+	/* Check if the current user has permission to edit the post. */
+	if ( !current_user_can( $post_type->cap->edit_post, $post_id ) )
+		return $post_id;
+
+	/* Get the previous post layout. */
+	$old_layout = get_post_layout( $post_id );
+
+	/* Get the submitted post layout. */
+	$new_layout = esc_attr( $_POST['post_layout'] );
+
+	/* If the old layout doesn't match the new layout, update the post layout meta. */
+	if ( $old_layout !== $new_layout )
+		set_post_layout( $post_id, $new_layout );
+}
+
+/**
+ * Adds a select drop-down element to the attachment edit form for selecting the attachment layout.
+ *
+ * @since 0.3.0
+ * @param array $fields Array of fields for the edit attachment form.
+ * @param object $post The attachment post object.
+ * @return array $fields
+ */
+function theme_layouts_attachment_fields_to_edit( $fields, $post ) {
+
+	/* Get theme-supported theme layouts. */
+	$layouts = get_theme_support( 'theme-layouts' );
+	$post_layouts = $layouts[0];
+
+	/* Get the current post's layout. */
+	$post_layout = get_post_layout( $post->ID );
+
+	/* Set the default post layout. */
+	$select = '<option id="post_layout_default" value="default" ' . selected( $post_layout, 'default', false ) . '>' . esc_html( theme_layouts_get_string( 'default' ) ) . '</option>';
+
+	/* Loop through each theme-supported layout, adding it to the select element. */
+	foreach ( $post_layouts as $layout )
+		$select .= '<option id="post_layout_' . esc_attr( $layout ) . '" value="' . esc_attr( $layout ) . '" ' . selected( $post_layout, $layout, false ) . '>' . esc_html( theme_layouts_get_string( $layout ) ) . '</option>';
+
+	/* Set the HTML for the post layout select drop-down. */
+	$select = '<select name="attachments[' . $post->ID . '][theme-layouts-post-layout]" id="attachments[' . $post->ID . '][theme-layouts-post-layout]">' . $select . '</select>';
+
+	/* Add the attachment layout field to the $fields array. */
+	$fields['theme-layouts-post-layout'] = array(
+		'label' => __( 'Layout', theme_layouts_textdomain() ),
+		'input' => 'html',
+		'html' => $select
+	);
+
+	/* Return the $fields array back to WordPress. */
+	return $fields;
+}
+
+/**
+ * Saves the attachment layout for the attachment edit form.
+ *
+ * @since 0.3.0
+ * @param array $post The attachment post array (not the post object!).
+ * @param array $fields Array of fields for the edit attachment form.
+ * @return array $post
+ */
+function theme_layouts_attachment_fields_to_save( $post, $fields ) {
+
+	/* If the theme layouts field was submitted. */
+	if ( isset( $fields['theme-layouts-post-layout'] ) ) {
+
+		/* Get the previous post layout. */
+		$old_layout = get_post_layout( $post['ID'] );
+
+		/* Get the submitted post layout. */
+		$new_layout = esc_attr( $fields['theme-layouts-post-layout'] );
+
+		/* If the old layout doesn't match the new layout, update the post layout meta. */
+		if ( $old_layout !== $new_layout )
+			set_post_layout( $post['ID'], $new_layout );
+	}
+
+	/* Return the attachment post array. */
+	return $post;
+}
+
+/**
+ * Returns the textdomain used by the script and allows it to be filtered by plugins/themes.
+ *
+ * @since 0.2.0
+ * @returns string The textdomain for the script.
+ */
+function theme_layouts_textdomain() {
+	return apply_filters( 'theme_layouts_textdomain', 'theme-layouts' );
+}
+
+/**
+ * @since 0.1.0
+ * @deprecated 0.2.0 Use theme_layouts_get_layout().
+ */
+function post_layouts_get_layout() {
+	return theme_layouts_get_layout();
+}
+
+?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/functions/comments.php b/wp-content/themes/hybrid/library/functions/comments.php
index e377abf64..c8b5c8e50 100644
--- a/wp-content/themes/hybrid/library/functions/comments.php
+++ b/wp-content/themes/hybrid/library/functions/comments.php
@@ -1,30 +1,40 @@
 <?php
 /**
- * Functions for handling how comments are displayed and used on the site. This allows more
- * precise control over their display and makes more filter and action hooks available to developers
- * to use in their customizations.
+ * Functions for handling how comments are displayed and used on the site. This allows more precise 
+ * control over their display and makes more filter and action hooks available to developers to use in their 
+ * customizations.
  *
- * @package Hybrid
+ * @package HybridCore
  * @subpackage Functions
  */
 
-/**
- * Filter the comment form defaults.
- * @since 0.8
- */
+/* Filter the comment form defaults. */
 add_filter( 'comment_form_defaults', 'hybrid_comment_form_args' );
 
+/* Add a few comment types to the allowed avatar comment types list. */
+add_filter( 'get_avatar_comment_types', 'hybrid_avatar_comment_types' );
+
 /**
  * Arguments for the wp_list_comments_function() used in comments.php. Users can set up a 
  * custom comments callback function by changing $callback to the custom function.  Note that 
  * $style should remain 'ol' since this is hardcoded into the theme and is the semantically correct
  * element to use for listing comments.
  *
- * @since 0.7
+ * @since 0.7.0
  * @return array $args Arguments for listing comments.
  */
 function hybrid_list_comments_args() {
-	$args = array( 'style' => 'ol', 'type' => 'all', 'avatar_size' => 80, 'callback' => 'hybrid_comments_callback', 'end-callback' => 'hybrid_comments_end_callback' );
+
+	/* Set the default arguments for listing comments. */
+	$args = array(
+		'style' => 'ol',
+		'type' => 'all',
+		'avatar_size' => 80,
+		'callback' => 'hybrid_comments_callback',
+		'end-callback' => 'hybrid_comments_end_callback'
+	);
+
+	/* Return the arguments and allow devs to overwrite them. */
 	return apply_atomic( 'list_comments_args', $args );
 }
 
@@ -34,33 +44,39 @@ function hybrid_list_comments_args() {
  * the $comment_type. The comment template hierarchy is comment-$comment_type.php, 
  * comment.php.
  *
- * The templates are saved in $hybrid->templates[comment_template], so each comment template
+ * The templates are saved in $hybrid->comment_template[$comment_type], so each comment template
  * is only located once if it is needed. Following comments will use the saved template.
  *
  * @since 0.2.3
- * @param $comment The comment variable
+ * @param $comment The comment object.
  * @param $args Array of arguments passed from wp_list_comments()
  * @param $depth What level the particular comment is
  */
 function hybrid_comments_callback( $comment, $args, $depth ) {
+	global $hybrid;
 	$GLOBALS['comment'] = $comment;
 	$GLOBALS['comment_depth'] = $depth;
 
+	/* Get the comment type of the current comment. */
 	$comment_type = get_comment_type( $comment->comment_ID );
 
-	$cache = wp_cache_get( 'comment_template' );
+	/* Create an empty array if the comment template array is not set. */
+	if ( !isset( $hybrid->comment_template) || !is_array( $hybrid->comment_template ) )
+		$hybrid->comment_template = array();
 
-	if ( !is_array( $cache ) )
-		$cache = array();
+	/* Check if a template has been provided for the specific comment type.  If not, get the template. */
+	if ( !isset( $hybrid->comment_template[$comment_type] ) ) {
 
-	if ( !isset( $cache[$comment_type] ) ) {
+		/* Locate the template based on the comment type.  Default to 'comment.php'. */
 		$template = locate_template( array( "comment-{$comment_type}.php", 'comment.php' ) );
 
-		$cache[$comment_type] = $template;
-		wp_cache_set( 'comment_template', $cache );
+		/* Set the template in the comment template array. */
+		$hybrid->comment_template[$comment_type] = $template;
 	}
 
-	require( $cache[$comment_type] );
+	/* If a template was found, load the template. */
+	if ( !empty( $hybrid->comment_template[$comment_type] ) )
+		require( $hybrid->comment_template[$comment_type] );
 }
 
 /**
@@ -76,87 +92,90 @@ function hybrid_comments_end_callback() {
 
 /**
  * Displays the avatar for the comment author and wraps it in the comment author's URL if it is
- * available.  Adds a call to THEME_IMAGES . "/{$comment_type}.png" for the default avatars for
+ * available.  Adds a call to HYBRID_IMAGES . "/{$comment_type}.png" for the default avatars for
  * trackbacks and pingbacks.
  *
- * @since 0.2
+ * @since 0.2.0
  * @global $comment The current comment's DB object.
  * @global $hybrid The global Hybrid object.
  */
 function hybrid_avatar() {
 	global $comment, $hybrid;
 
+	/* Make sure avatars are allowed before proceeding. */
 	if ( !get_option( 'show_avatars' ) )
 		return false;
 
 	/* Get/set some comment variables. */
 	$comment_type = get_comment_type( $comment->comment_ID );
-	$author = esc_html( get_comment_author( $comment->comment_ID ) );
-	$url = esc_url( get_comment_author_url( $comment->comment_ID ) );
+	$author = get_comment_author( $comment->comment_ID );
+	$url = get_comment_author_url( $comment->comment_ID );
+	$avatar = '';
+	$default_avatar = '';
 
-	if ( 'pingback' == $comment_type || 'trackback' == $comment_type ) 
-		$default_avatar = THEME_IMAGES . "/{$comment_type}.png";
+	/* Get comment types that are allowed to have an avatar. */
+	$avatar_comment_types = apply_filters( 'get_avatar_comment_types', array( 'comment' ) );
 
-	$default_avatar = apply_filters( "{$hybrid->prefix}_{$comment_type}_avatar", $default_avatar );
+	/* If comment type is in the allowed list, check if it's a pingback or trackback. */
+	if ( in_array( $comment_type, $avatar_comment_types ) ) {
 
+		/* Set a default avatar for pingbacks and trackbacks. */
+		$default_avatar = ( ( 'pingback' == $comment_type || 'trackback' == $comment_type ) ? trailingslashit( HYBRID_IMAGES ) . "{$comment_type}.png" : '' );
+
+		/* Allow the default avatar to be filtered by comment type. */
+		$default_avatar = apply_filters( "{$hybrid->prefix}_{$comment_type}_avatar", $default_avatar );
+	}
+
+	/* Set up the avatar size. */
 	$comment_list_args = hybrid_list_comments_args();
 	$size = ( ( $comment_list_args['avatar_size'] ) ? $comment_list_args['avatar_size'] : 80 );
 
-	$avatar = get_avatar( get_comment_author_email( $comment->comment_ID ), absint( $size ), $default_avatar, $author );
+	/* Get the avatar provided by the get_avatar() function. */
+	$avatar = get_avatar( $comment, absint( $size ), $default_avatar, $author );
 
 	/* If URL input, wrap avatar in hyperlink. */
-	if ( $url )
-		$avatar = '<a href="' . $url . '" rel="external nofollow" title="' . $author . '">' . $avatar . '</a>';
+	if ( !empty( $url ) && !empty( $avatar ) )
+		$avatar = '<a href="' . esc_url( $url ) . '" rel="external nofollow" title="' . esc_attr( $author ) . '">' . $avatar . '</a>';
 
+	/* Display the avatar and allow it to be filtered. Note: Use the get_avatar filter hook where possible. */
 	echo apply_filters( "{$hybrid->prefix}_avatar", $avatar );
 }
 
-/**
- * Function for displaying a comment's metadata.
- *
- * @since 0.7
- * @param string $metadata Custom metadata to use.
- * @global $comment The global comment object.
- * @global $post The global post object.
- */
-function hybrid_comment_meta( $metadata = '' ) {
-	global $comment, $post;
-
-	if ( !$metadata )
-		$metadata = '[comment-author] [comment-published] [comment-permalink before="| "] [comment-edit-link before="| "] [comment-reply-link before="| "]';
-
-	$metadata = '<div class="comment-meta comment-meta-data">' . $metadata . '</div>';
-
-	echo do_shortcode( apply_filters( hybrid_get_prefix() . '_comment_meta', $metadata ) );
-}
-
 /**
  * Filters the WordPress comment_form() function that was added in WordPress 3.0.  This allows
  * the theme to preserve some backwards compatibility with its old comment form.  It also allows 
  * users to build custom comment forms by filtering 'comment_form_defaults' in their child theme.
  *
- * @since 0.8
+ * @since 0.8.0
  * @param array $args The default comment form arguments.
  * @return array $args The filtered comment form arguments.
  */
 function hybrid_comment_form_args( $args ) {
 	global $user_identity;
 
+	/* Get the theme textdomain. */
 	$domain = hybrid_get_textdomain();
+
+	/* Get the current commenter. */
 	$commenter = wp_get_current_commenter();
+
+	/* Create the required <span> and <input> element class. */
 	$req = ( ( get_option( 'require_name_email' ) ) ? ' <span class="required">' . __( '*', $domain ) . '</span> ' : '' );
+	$input_class = ( ( get_option( 'require_name_email' ) ) ? ' req' : '' );
 
+	/* Sets up the default comment form fields. */
 	$fields = array(
-		'author' => '<p class="form-author"><label for="author">' . __( 'Name', $domain ) . $req . '</label> <input type="text" class="text-input" name="author" id="author" value="' . esc_attr( $commenter['comment_author'] ) . '" size="40" tabindex="1" /></p>',
-		'email' => '<p class="form-email"><label for="email">' . __( 'Email', $domain ) . $req . '</label> <input type="text" class="text-input" name="email" id="email" value="' . esc_attr( $commenter['comment_author_email'] ) . '" size="40" tabindex="2" /></p>',
-		'url' => '<p class="form-url"><label for="url">' . __( 'Website', $domain ) . '</label><input type="text" class="text-input" name="url" id="url" value="' . esc_attr( $commenter['comment_author_url'] ) . '" size="40" tabindex="3" /></p>'
+		'author' => '<p class="form-author' . esc_attr( $input_class ) . '"><label for="author">' . __( 'Name', $domain ) . $req . '</label> <input type="text" class="text-input" name="author" id="author" value="' . esc_attr( $commenter['comment_author'] ) . '" size="40" /></p>',
+		'email' => '<p class="form-email' . esc_attr( $input_class ) . '"><label for="email">' . __( 'Email', $domain ) . $req . '</label> <input type="text" class="text-input" name="email" id="email" value="' . esc_attr( $commenter['comment_author_email'] ) . '" size="40" /></p>',
+		'url' => '<p class="form-url"><label for="url">' . __( 'Website', $domain ) . '</label><input type="text" class="text-input" name="url" id="url" value="' . esc_attr( $commenter['comment_author_url'] ) . '" size="40" /></p>'
 	);
 
+	/* Sets the default arguments for displaying the comment form. */
 	$args = array(
 		'fields' => apply_filters( 'comment_form_default_fields', $fields ),
-		'comment_field' => '<p class="form-textarea"><label for="comment">' . __( 'Comment', $domain ) . '</label><textarea name="comment" id="comment" cols="60" rows="10" tabindex="4"></textarea></p>',
+		'comment_field' => '<p class="form-textarea req"><label for="comment">' . __( 'Comment', $domain ) . '</label><textarea name="comment" id="comment" cols="60" rows="10"></textarea></p>',
 		'must_log_in' => '<p class="alert">' . sprintf( __( 'You must be <a href="%1$s" title="Log in">logged in</a> to post a comment.', $domain ), wp_login_url( get_permalink() ) ) . '</p><!-- .alert -->',
-		'logged_in_as' => '<p class="log-in-out">' . sprintf( __( 'Logged in as <a href="%1$s" title="%2$s">%2$s</a>.', $domain ), admin_url( 'profile.php' ), $user_identity ) . ' <a href="' . wp_logout_url( get_permalink() ) . '" title="' . __( 'Log out of this account', $domain ) . '">' . __( 'Log out &raquo;', $domain ) . '</a></p><!-- .log-in-out -->',
+		'logged_in_as' => '<p class="log-in-out">' . sprintf( __( 'Logged in as <a href="%1$s" title="%2$s">%2$s</a>.', $domain ), admin_url( 'profile.php' ), esc_attr( $user_identity ) ) . ' <a href="' . wp_logout_url( get_permalink() ) . '" title="' . esc_attr__( 'Log out of this account', $domain ) . '">' . __( 'Log out &raquo;', $domain ) . '</a></p><!-- .log-in-out -->',
 		'comment_notes_before' => '',
 		'comment_notes_after' => '',
 		'id_form' => 'commentform',
@@ -164,10 +183,31 @@ function hybrid_comment_form_args( $args ) {
 		'title_reply' => __( 'Leave a Reply', $domain ),
 		'title_reply_to' => __( 'Leave a Reply to %s', $domain ),
 		'cancel_reply_link' => __( 'Click here to cancel reply.', $domain ),
-		'label_submit' => __( 'Submit', $domain ),
+		'label_submit' => __( 'Post Comment', $domain ),
 	);
 
+	/* Return the arguments for displaying the comment form. */
 	return $args;
 }
 
+/**
+ * Adds the 'pingback' and 'trackback' comment types to the allowed list of avatar comment types.  By
+ * default, WordPress only allows the 'comment' comment type to have an avatar.
+ *
+ * @since 1.2.0
+ * @param array $types List of all comment types allowed to have avatars.
+ * @return array $types
+ */
+function hybrid_avatar_comment_types( $types ) {
+
+	/* Add the 'pingback' comment type. */
+	$types[] = 'pingback';
+
+	/* Add the 'trackback' comment type. */
+	$types[] = 'trackback';
+
+	/* Return the array of comment types. */
+	return $types;
+}
+
 ?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/functions/context.php b/wp-content/themes/hybrid/library/functions/context.php
index b58f5893a..d3b3c465e 100644
--- a/wp-content/themes/hybrid/library/functions/context.php
+++ b/wp-content/themes/hybrid/library/functions/context.php
@@ -1,13 +1,11 @@
 <?php
 /**
- * Functions for making various theme elements context-aware. This controls things such as the
- * <body> and entry CSS classes as well as contextual hooks. By using a context, developers and
- * users can create page-specific code.
+ * Functions for making various theme elements context-aware.  Controls things such as the smart 
+ * and logical body, post, and comment CSS classes as well as context-based action and filter hooks.  
+ * The functions also integrate with WordPress' implementations of body_class, post_class, and 
+ * comment_class, so your theme won't have any trouble with plugin integration.
  *
- * Many of the ideas behind context-aware functions originated with the great Sandbox theme.
- * @link http://www.plaintxt.org/themes/sandbox
- *
- * @package Hybrid
+ * @package HybridCore
  * @subpackage Functions
  */
 
@@ -21,19 +19,22 @@
  * based archives depending on several factors.  For example, one could load an archive for a specific
  * second during a specific minute within a specific hour on a specific day and so on.
  *
- * @since 0.7
+ * @since 0.7.0
  * @global $wp_query The current page's query object.
  * @global $hybrid The global Hybrid object.
  * @return array $hybrid->context Several contexts based on the current page.
  */
 function hybrid_get_context() {
-	global $wp_query, $hybrid;
+	global $hybrid;
 
 	/* If $hybrid->context has been set, don't run through the conditionals again. Just return the variable. */
-	if ( is_array( $hybrid->context ) )
+	if ( isset( $hybrid->context ) )
 		return $hybrid->context;
 
+	/* Set some variables for use within the function. */
 	$hybrid->context = array();
+	$object = get_queried_object();
+	$object_id = get_queried_object_id();
 
 	/* Front page of the site. */
 	if ( is_front_page() )
@@ -47,8 +48,8 @@ function hybrid_get_context() {
 	/* Singular views. */
 	elseif ( is_singular() ) {
 		$hybrid->context[] = 'singular';
-		$hybrid->context[] = "singular-{$wp_query->post->post_type}";
-		$hybrid->context[] = "singular-{$wp_query->post->post_type}-{$wp_query->post->ID}";
+		$hybrid->context[] = "singular-{$object->post_type}";
+		$hybrid->context[] = "singular-{$object->post_type}-{$object_id}";
 	}
 
 	/* Archive views. */
@@ -57,16 +58,21 @@ function hybrid_get_context() {
 
 		/* Taxonomy archives. */
 		if ( is_tax() || is_category() || is_tag() ) {
-			$term = $wp_query->get_queried_object();
 			$hybrid->context[] = 'taxonomy';
-			$hybrid->context[] = $term->taxonomy;
-			$hybrid->context[] = "{$term->taxonomy}-" . sanitize_html_class( $term->slug, $term->term_id );
+			$hybrid->context[] = "taxonomy-{$object->taxonomy}";
+			$hybrid->context[] = "taxonomy-{$object->taxonomy}-" . sanitize_html_class( $object->slug, $object->term_id );
+		}
+
+		/* Post type archives. */
+		elseif ( is_post_type_archive() ) {
+			$post_type = get_post_type_object( get_query_var( 'post_type' ) );
+			$hybrid->context[] = "archive-{$post_type->name}";
 		}
 
 		/* User/author archives. */
 		elseif ( is_author() ) {
 			$hybrid->context[] = 'user';
-			$hybrid->context[] = 'user-' . sanitize_html_class( get_the_author_meta( 'user_nicename', get_query_var( 'author' ) ), $wp_query->get_queried_object_id() );
+			$hybrid->context[] = 'user-' . sanitize_html_class( get_the_author_meta( 'user_nicename', $object_id ), $object_id );
 		}
 
 		/* Time/Date archives. */
@@ -102,7 +108,7 @@ function hybrid_get_context() {
 		$hybrid->context[] = 'error-404';
 	}
 
-	return $hybrid->context;
+	return array_map( 'esc_attr', $hybrid->context );
 }
 
 /**
@@ -110,45 +116,67 @@ function hybrid_get_context() {
  * 'hentry'. Posts are given category, tag, and author classes. Alternate post classes of odd, 
  * even, and alt are added.
  *
- * @since 0.5
+ * @since 0.5.0
  * @global $post The current post's DB object.
  * @param string|array $class Additional classes for more control.
  * @return string $class
  */
-function hybrid_entry_class( $class = '' ) {
-	global $post;
+function hybrid_entry_class( $class = '', $post_id = null ) {
 	static $post_alt;
 
-	/* Add hentry for microformats compliance and the post type. */
-	$classes = array( 'hentry', $post->post_type, $post->post_status );
+	$post = get_post( $post_id );
+
+	/* Make sure we have a real post first. */
+	if ( !empty( $post ) ) {
+
+		$post_id = $post->ID;
 
-	/* Post alt class. */
-	$classes[] = 'post-' . ++$post_alt;
-	$classes[] = ( $post_alt % 2 ) ? 'odd' : 'even alt';
+		/* Add hentry for microformats compliance, the post type, and post status. */
+		$classes = array( 'hentry', $post->post_type, $post->post_status );
 
-	/* Author class. */
-	$classes[] = 'author-' . sanitize_html_class( get_the_author_meta( 'user_nicename' ), get_the_author_meta( 'ID' ) );
+		/* Post alt class. */
+		$classes[] = 'post-' . ++$post_alt;
+		$classes[] = ( $post_alt % 2 ) ? 'odd' : 'even alt';
 
-	/* Sticky class (only on home/blog page). */
-	if ( is_home() && is_sticky() )
-		$classes[] = 'sticky';
+		/* Author class. */
+		$classes[] = 'author-' . sanitize_html_class( get_the_author_meta( 'user_nicename' ), get_the_author_meta( 'ID' ) );
 
-	/* Password-protected posts. */
-	if ( post_password_required() )
-		$classes[] = 'protected';
+		/* Sticky class (only on home/blog page). */
+		if ( is_home() && is_sticky() && !is_paged() )
+			$classes[] = 'sticky';
 
-	/* Add category and post tag terms as classes. */
-	if ( 'post' == $post->post_type ) {
+		/* Password-protected posts. */
+		if ( post_password_required() )
+			$classes[] = 'protected';
 
-		foreach ( array( 'category', 'post_tag' ) as $tax ) {
+		/* Has excerpt. */
+		if ( has_excerpt() )
+			$classes[] = 'has-excerpt';
 
-			foreach ( (array)get_the_terms( $post->ID, $tax ) as $term ) {
-				if ( !empty( $term->slug ) )
-					$classes[] = $tax . '-' . sanitize_html_class( $term->slug, $term->term_id );
+		/* Post format. */
+		if ( current_theme_supports( 'post-formats' ) && post_type_supports( $post->post_type, 'post-formats' ) ) {
+			$post_format = get_post_format( $post_id );
+			$classes[] = ( ( empty( $post_format ) || is_wp_error( $post_format ) ) ? 'format-standard' : "format-{$post_format}" );
+		}
+
+		/* Add category and post tag terms as classes. */
+		if ( 'post' == $post->post_type ) {
+
+			foreach ( array( 'category', 'post_tag' ) as $tax ) {
+
+				foreach ( (array)get_the_terms( $post->ID, $tax ) as $term ) {
+					if ( !empty( $term->slug ) )
+						$classes[] = $tax . '-' . sanitize_html_class( $term->slug, $term->term_id );
+				}
 			}
 		}
 	}
 
+	/* If not a post. */
+	else {
+		$classes = array( 'hentry', 'error' );
+	}
+
 	/* User-created classes. */
 	if ( !empty( $class ) ) {
 		if ( !is_array( $class ) )
@@ -156,6 +184,9 @@ function hybrid_entry_class( $class = '' ) {
 		$classes = array_merge( $classes, $class );
 	}
 
+	/* Apply the filters for WP's 'post_class'. */
+	$classes = apply_filters( 'post_class', $classes, $class, $post_id );
+
 	/* Join all the classes into one string and echo them. */
 	$class = join( ' ', $classes );
 
@@ -167,15 +198,15 @@ function hybrid_entry_class( $class = '' ) {
  * and reader classes. Needs more work because WP, by default, assigns even/odd backwards 
  * (Odd should come first, even second).
  *
- * @since 0.2
+ * @since 0.2.0
  * @global $wpdb WordPress DB access object.
  * @global $comment The current comment's DB object.
  */
-function hybrid_comment_class() {
+function hybrid_comment_class( $class = '' ) {
 	global $post, $comment, $hybrid;
 
 	/* Gets default WP comment classes. */
-	$classes = get_comment_class();
+	$classes = get_comment_class( $class );
 
 	/* Get the comment type. */
 	$classes[] = get_comment_type();
@@ -193,7 +224,7 @@ function hybrid_comment_class() {
 		}
 
 		/* Set a class with the user's name. */
-		$classes[] = 'user-' . sanitize_html_class( $user->user_nicename, $user->user_id );
+		$classes[] = 'user-' . sanitize_html_class( $user->user_nicename, $user->ID );
 	}
 
 	/* If not a registered user */
@@ -207,6 +238,13 @@ function hybrid_comment_class() {
 			$classes[] = 'entry-author';
 	}
 
+	/* Get comment types that are allowed to have an avatar. */
+	$avatar_comment_types = apply_filters( 'get_avatar_comment_types', array( 'comment' ) );
+
+	/* If avatars are enabled and the comment types can display avatars, add the 'has-avatar' class. */
+	if ( get_option( 'show_avatars' ) && in_array( $comment->comment_type, $avatar_comment_types ) )
+		$classes[] = 'has-avatar';
+
 	/* Join all the classes into one string and echo them. */
 	$class = join( ' ', $classes );
 
@@ -216,22 +254,24 @@ function hybrid_comment_class() {
 /**
  * Provides classes for the <body> element depending on page context.
  *
- * @since 0.1
+ * @since 0.1.0
  * @uses $wp_query
  * @param string|array $class Additional classes for more control.
  * @return string
  */
 function hybrid_body_class( $class = '' ) {
-	global $wp_query, $is_lynx, $is_gecko, $is_IE, $is_opera, $is_NS4, $is_safari, $is_chrome;
+	global $wp_query;
 
 	/* Text direction (which direction does the text flow). */
 	$classes = array( 'wordpress', get_bloginfo( 'text_direction' ), get_locale() );
 
-	/* Layout class. */
-	if ( ( current_theme_supports( 'post-layouts' ) || 'hybrid' == get_stylesheet() ) && is_singular() ) {
-		$layout = get_post_meta( $wp_query->post->ID, 'Layout', true );
-		if ( !empty( $layout ) )
-			$classes[] = 'layout-' . strip_tags( esc_attr( $layout ) );
+	/* Check if the current theme is a parent or child theme. */
+	$classes[] = ( is_child_theme() ? 'child-theme' : 'parent-theme' );
+
+	/* Multisite check adds the 'multisite' class and the blog ID. */
+	if ( is_multisite() ) {
+		$classes[] = 'multisite';
+		$classes[] = 'blog-' . get_current_blog_id();
 	}
 
 	/* Date classes. */
@@ -239,7 +279,11 @@ function hybrid_body_class( $class = '' ) {
 	$classes[] = strtolower( gmdate( '\yY \mm \dd \hH l', $time ) );
 
 	/* Is the current user logged in. */
-	$classes[] = ( is_user_logged_in() ) ? 'logged-in' : 'not-logged-in';
+	$classes[] = ( is_user_logged_in() ) ? 'logged-in' : 'logged-out';
+
+	/* WP admin bar. */
+	if ( is_admin_bar_showing() )
+		$classes[] = 'admin-bar';
 
 	/* Merge base contextual classes with $classes. */
 	$classes = array_merge( $classes, hybrid_get_context() );
@@ -247,11 +291,18 @@ function hybrid_body_class( $class = '' ) {
 	/* Singular post (post_type) classes. */
 	if ( is_singular() ) {
 
+		/* Get the queried post object. */
+		$post = get_queried_object();
+
 		/* Checks for custom template. */
-		$template = str_replace( array ( "{$wp_query->post->post_type}-", "{$wp_query->post->post_type}-template-", '.php' ), '', get_post_meta( $wp_query->post->ID, "_wp_{$wp_query->post->post_type}_template", true ) );
-		if ( $template ) {
-			//$template = str_replace(  ), '', $template );
-			$classes[] = "{$wp_query->post->post_type}-template-{$template}";
+		$template = str_replace( array ( "{$post->post_type}-template-", "{$post->post_type}-", '.php' ), '', get_post_meta( get_queried_object_id(), "_wp_{$post->post_type}_template", true ) );
+		if ( !empty( $template ) )
+			$classes[] = "{$post->post_type}-template-{$template}";
+
+		/* Post format. */
+		if ( current_theme_supports( 'post-formats' ) && post_type_supports( $post->post_type, 'post-formats' ) ) {
+			$post_format = get_post_format( get_queried_object_id() );
+			$classes[] = ( ( empty( $post_format ) || is_wp_error( $post_format ) ) ? "{$post->post_type}-format-standard" : "{$post->post_type}-format-{$post_format}" );
 		}
 
 		/* Attachment mime types. */
@@ -259,35 +310,11 @@ function hybrid_body_class( $class = '' ) {
 			foreach ( explode( '/', get_post_mime_type() ) as $type )
 				$classes[] = "attachment-{$type}";
 		}
-
-		/* Deprecated classes. */
-		elseif ( is_page() )
-			$classes[] = "page-{$wp_query->post->ID}"; // Use singular-page-ID
-		elseif ( is_singular( 'post' ) )
-			$classes[] = "single-{$wp_query->post->ID}"; // Use singular-post-ID
 	}
 
 	/* Paged views. */
-	if ( ( ( $page = $wp_query->get( 'paged' ) ) || ( $page = $wp_query->get( 'page' ) ) ) && $page > 1 ) {
-		$page = intval( $page );
-		$classes[] = 'paged paged-' . $page;
-	}
-
-	/* Browser detection. */
-	$browsers = array( 	'gecko' => $is_gecko, 'opera' => $is_opera, 'lynx' => $is_lynx, 'ns4' => $is_NS4, 'safari' => $is_safari, 'chrome' => $is_chrome, 'msie' => $is_IE );
-	foreach ( $browsers as $key => $value ) {
-		if ( $value ) {
-			$classes[] = $key;
-			break;
-		}
-	}
-
-	/* Hybrid theme widgets detection. */
-	foreach ( array( 'primary', 'secondary', 'subsidiary' ) as $sidebar )
-		$classes[] = ( is_active_sidebar( $sidebar ) ) ? "{$sidebar}-active" : "{$sidebar}-inactive";
-
-	if ( in_array( 'primary-inactive', $classes ) && in_array( 'secondary-inactive', $classes ) && in_array( 'subsidiary-inactive', $classes ) )
-		$classes[] = 'no-widgets';
+	if ( ( ( $page = $wp_query->get( 'paged' ) ) || ( $page = $wp_query->get( 'page' ) ) ) && $page > 1 )
+		$classes[] = 'paged paged-' . intval( $page );
 
 	/* Input class. */
 	if ( !empty( $class ) ) {
@@ -296,6 +323,9 @@ function hybrid_body_class( $class = '' ) {
 		$classes = array_merge( $classes, $class );
 	}
 
+	/* Apply the filters for WP's 'body_class'. */
+	$classes = apply_filters( 'body_class', $classes, $class );
+
 	/* Join all the classes into one string. */
 	$class = join( ' ', $classes );
 
@@ -304,43 +334,59 @@ function hybrid_body_class( $class = '' ) {
 }
 
 /**
- * Function for handling what the browser/search engine title should be. Tries to handle every 
- * situation to make for the best SEO.
+ * Function for handling what the browser/search engine title should be. Attempts to handle every 
+ * possible situation WordPress throws at it for the best optimization.
  *
- * @since 0.1
+ * @since 0.1.0
  * @global $wp_query
  */
 function hybrid_document_title() {
 	global $wp_query;
 
+	/* Set up some default variables. */
 	$domain = hybrid_get_textdomain();
-
+	$doctitle = '';
 	$separator = ':';
 
+	/* If viewing the front page and posts page of the site. */
 	if ( is_front_page() && is_home() )
 		$doctitle = get_bloginfo( 'name' ) . $separator . ' ' . get_bloginfo( 'description' );
 
+	/* If viewing the posts page or a singular post. */
 	elseif ( is_home() || is_singular() ) {
-		$id = $wp_query->get_queried_object_id();
 
-		$doctitle = get_post_meta( $id, 'Title', true );
+		$doctitle = get_post_meta( get_queried_object_id(), 'Title', true );
 
-		if ( !$doctitle && is_front_page() )
+		if ( empty( $doctitle ) && is_front_page() )
 			$doctitle = get_bloginfo( 'name' ) . $separator . ' ' . get_bloginfo( 'description' );
-		elseif ( !$doctitle )
-			$doctitle = get_post_field( 'post_title', $id );
+
+		elseif ( empty( $doctitle ) )
+			$doctitle = single_post_title( '', false );
 	}
 
+	/* If viewing any type of archive page. */
 	elseif ( is_archive() ) {
 
+		/* If viewing a taxonomy term archive. */
 		if ( is_category() || is_tag() || is_tax() ) {
-			$term = $wp_query->get_queried_object();
-			$doctitle = $term->name;
+			$doctitle = single_term_title( '', false );
 		}
 
-		elseif ( is_author() )
-			$doctitle = get_the_author_meta( 'display_name', get_query_var( 'author' ) );
+		/* If viewing a post type archive. */
+		elseif ( is_post_type_archive() ) {
+			$post_type = get_post_type_object( get_query_var( 'post_type' ) );
+			$doctitle = $post_type->labels->name;
+		}
 
+		/* If viewing an author/user archive. */
+		elseif ( is_author() ) {
+			$doctitle = get_user_meta( get_query_var( 'author' ), 'Title', true );
+
+			if ( empty( $doctitle ) )
+				$doctitle = get_the_author_meta( 'display_name', get_query_var( 'author' ) );
+		}
+
+		/* If viewing a date-/time-based archive. */
 		elseif ( is_date () ) {
 			if ( get_query_var( 'minute' ) && get_query_var( 'hour' ) )
 				$doctitle = sprintf( __( 'Archive for %1$s', $domain ), get_the_time( __( 'g:i a', $domain ) ) );
@@ -363,21 +409,29 @@ function hybrid_document_title() {
 			elseif ( is_year() )
 				$doctitle = sprintf( __( 'Archive for %1$s', $domain ), get_the_time( __( 'Y', $domain ) ) );
 		}
+
+		/* For any other archives. */
+		else {
+			$doctitle = __( 'Archives', $domain );
+		}
 	}
 
+	/* If viewing a search results page. */
 	elseif ( is_search() )
 		$doctitle = sprintf( __( 'Search results for &quot;%1$s&quot;', $domain ), esc_attr( get_search_query() ) );
 
+	/* If viewing a 404 not found page. */
 	elseif ( is_404() )
 		$doctitle = __( '404 Not Found', $domain );
 
-	/* If paged. */
+	/* If the current page is a paged page. */
 	if ( ( ( $page = $wp_query->get( 'paged' ) ) || ( $page = $wp_query->get( 'page' ) ) ) && $page > 1 )
-		$doctitle = sprintf( __( '%1$s Page %2$s', $domain ), $doctitle . $separator, $page );
+		$doctitle = sprintf( __( '%1$s Page %2$s', $domain ), $doctitle . $separator, number_format_i18n( $page ) );
 
 	/* Apply the wp_title filters so we're compatible with plugins. */
 	$doctitle = apply_filters( 'wp_title', $doctitle, $separator, '' );
 
+	/* Print the title to the screen. */
 	echo apply_atomic( 'document_title', esc_attr( $doctitle ) );
 }
 
diff --git a/wp-content/themes/hybrid/library/functions/core-seo.php b/wp-content/themes/hybrid/library/functions/core-seo.php
new file mode 100644
index 000000000..e78c6317e
--- /dev/null
+++ b/wp-content/themes/hybrid/library/functions/core-seo.php
@@ -0,0 +1,231 @@
+<?php
+/**
+ * SEO and header functions.  Not all things in this file are strictly for search engine optimization.  Many 
+ * of the functions handle basic <meta> elements for the <head> area of the site.  This file is a catchall file 
+ * for adding these types of things to themes.
+ *
+ * @package HybridCore
+ * @subpackage Functions
+ */
+
+/* Add <meta> elements to the <head> area. */
+add_action( 'wp_head', 'hybrid_meta_robots', 1 );
+add_action( 'wp_head', 'hybrid_meta_author', 1 );
+add_action( 'wp_head', 'hybrid_meta_copyright', 1 );
+add_action( 'wp_head', 'hybrid_meta_revised', 1 );
+add_action( 'wp_head', 'hybrid_meta_description', 1 );
+add_action( 'wp_head', 'hybrid_meta_keywords', 1 );
+
+/**
+ * Sets the default meta robots setting.  If private, don't send meta info to the header.  Runs the 
+ * hybrid_meta_robots filter hook at the end.
+ *
+ * @since 0.2.3
+ */
+function hybrid_meta_robots() {
+
+	/* If the blog is set to private, don't show anything. */
+	if ( !get_option( 'blog_public' ) )
+		return;
+
+	/* Create the HTML for the robots meta tag. */
+	$robots = '<meta name="robots" content="index,follow" />' . "\n";
+
+	echo apply_atomic( 'meta_robots', $robots );
+}
+
+/**
+ * Generates the meta author.  For singular posts, it uses the post author's display name.  For user/author 
+ * archives, it uses the user's display name.
+ *
+ * @since 0.3.3
+ */
+function hybrid_meta_author() {
+
+	/* Set an empty $author variable. */
+	$author = '';
+
+	/* Get the queried object. */
+	$object = get_queried_object();
+
+	/* If viewing a singular post, get the post author's display name. */
+	if ( is_singular() )
+		$author = get_the_author_meta( 'display_name', $object->post_author );
+
+	/* If viewing a user/author archive, get the user's display name. */
+	elseif ( is_author() )
+		$author = get_the_author_meta( 'display_name', get_queried_object_id() );
+
+	/* If an author was found, wrap it in the proper HTML and escape the author name. */
+	if ( !empty( $author ) )
+		$author = '<meta name="author" content="' . esc_attr( $author ) . '" />' . "\n";
+
+	echo apply_atomic( 'meta_author', $author );
+}
+
+/**
+ * Add the meta tag for copyright information to the header.  Singular posts display the date the post was 
+ * published.  All other pages will show the current year. 
+ *
+ * @since 0.4.0
+ */
+function hybrid_meta_copyright() {
+
+	/* Get the theme's textdomain. */
+	$domain = hybrid_get_textdomain();
+
+	/* If viewing a singular post, get the post month and year. */
+	if ( is_singular() )
+		$date = get_the_time( esc_attr__( 'F Y', $domain ) );
+
+	/* For all other views, get the current year. */
+	else
+		$date = date( esc_attr__( 'Y', $domain ) );
+
+	/* Create the HTML for the copyright meta tag. */
+	$copyright = '<meta name="copyright" content="' . sprintf( esc_attr__( 'Copyright (c) %1$s', $domain ), $date ) . '" />' . "\n";
+
+	echo apply_atomic( 'meta_copyright', $copyright );
+}
+
+/**
+ * Add the revised meta tag on the singular view of posts.  This shows the last time the post was modified. 
+ *
+ * @since 0.4.0
+ */
+function hybrid_meta_revised() {
+
+	/* Create an empty $revised variable. */
+	$revised = '';
+
+	/* If viewing a singular post, get the last modified date/time to use in the revised meta tag. */
+	if ( is_singular() )
+		$revised = '<meta name="revised" content="' . get_the_modified_time( esc_attr__( 'l, F jS, Y, g:i a', hybrid_get_textdomain() ) ) . '" />' . "\n";
+
+	echo apply_atomic( 'meta_revised', $revised );
+}
+
+/**
+ * Generates the meta description based on either metadata or the description for the object.
+ *
+ * @since 0.2.3
+ */
+function hybrid_meta_description() {
+
+	/* Set an empty $description variable. */
+	$description = '';
+
+	/* If viewing the home/posts page, get the site's description. */
+	if ( is_home() ) {
+		$description = get_bloginfo( 'description' );
+	}
+
+	/* If viewing a singular post. */
+	elseif ( is_singular() ) {
+
+		/* Get the meta value for the 'Description' meta key. */
+		$description = get_post_meta( get_queried_object_id(), 'Description', true );
+
+		/* If no description was found and viewing the site's front page, use the site's description. */
+		if ( empty( $description ) && is_front_page() )
+			$description = get_bloginfo( 'description' );
+
+		/* For all other singular views, get the post excerpt. */
+		elseif ( empty( $description ) )
+			$description = get_post_field( 'post_excerpt', get_queried_object_id() );
+	}
+
+	/* If viewing an archive page. */
+	elseif ( is_archive() ) {
+
+		/* If viewing a user/author archive. */
+		if ( is_author() ) {
+
+			/* Get the meta value for the 'Description' user meta key. */
+			$description = get_user_meta( get_query_var( 'author' ), 'Description', true );
+
+			/* If no description was found, get the user's description (biographical info). */
+			if ( empty( $description ) )
+				$description = get_the_author_meta( 'description', get_query_var( 'author' ) );
+		}
+
+		/* If viewing a taxonomy term archive, get the term's description. */
+		elseif ( is_category() || is_tag() || is_tax() )
+			$description = term_description( '', get_query_var( 'taxonomy' ) );
+
+		/* If viewing a custom post type archive. */
+		elseif ( is_post_type_archive() ) {
+
+			/* Get the post type object. */
+			$post_type = get_post_type_object( get_query_var( 'post_type' ) );
+
+			/* If a description was set for the post type, use it. */
+			if ( isset( $post_type->description ) )
+				$description = $post_type->description;
+		}
+	}
+
+	/* Format the meta description. */
+	if ( !empty( $description ) )
+		$description = '<meta name="description" content="' . str_replace( array( "\r", "\n", "\t" ), '', esc_attr( strip_tags( $description ) ) ) . '" />' . "\n";
+
+	echo apply_atomic( 'meta_description', $description );
+}
+
+/**
+ * Generates meta keywords/tags for the site.
+ *
+ * @since 0.2.3
+ */
+function hybrid_meta_keywords() {
+
+	/* Set an empty $keywords variable. */
+	$keywords = '';
+
+	/* If on a singular post and not a preview. */
+	if ( is_singular() && !is_preview() ) {
+
+		/* Get the queried post. */
+		$post = get_queried_object();
+
+		/* Get the meta value for the 'Keywords' meta key. */
+		$keywords = get_post_meta( get_queried_object_id(), 'Keywords', true );
+
+		/* If no keywords were found. */
+		if ( empty( $keywords ) ) {
+
+			/* Get all taxonomies for the current post type. */
+			$taxonomies = get_object_taxonomies( $post->post_type );
+
+			/* If taxonomies were found for the post type. */
+			if ( is_array( $taxonomies ) ) {
+
+				/* Loop through the taxonomies, getting the terms for the current post. */
+				foreach ( $taxonomies as $tax ) {
+
+					if ( $terms = get_the_term_list( get_queried_object_id(), $tax, '', ', ', '' ) )
+						$keywords[] = $terms;
+				}
+
+				/* If keywords were found, join the array into a comma-separated string. */
+				if ( !empty( $keywords ) )
+					$keywords = join( ', ', $keywords );
+			}
+		}
+	}
+
+	/* If on a user/author archive page, check for user meta. */
+	elseif ( is_author() ) {
+
+		/* Get the meta value for the 'Keywords' user meta key. */
+		$keywords = get_user_meta( get_query_var( 'author' ), 'Keywords', true );
+	}
+
+	/* If we have keywords, format for output. */
+	if ( !empty( $keywords ) )
+		$keywords = '<meta name="keywords" content="' . esc_attr( strip_tags( $keywords ) ) . '" />' . "\n";
+
+	echo apply_atomic( 'meta_keywords', $keywords );
+}
+
+?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/functions/core.php b/wp-content/themes/hybrid/library/functions/core.php
index 26bee29e4..1cada8df5 100644
--- a/wp-content/themes/hybrid/library/functions/core.php
+++ b/wp-content/themes/hybrid/library/functions/core.php
@@ -4,7 +4,7 @@
  * used across the entire framework to make various tasks faster. This file should be loaded
  * prior to any other files because its functions are needed to run the framework.
  *
- * @package Hybrid
+ * @package HybridCore
  * @subpackage Functions
  */
 
@@ -14,8 +14,8 @@
  * plugin to make it easier to use hooks across multiple themes without having to figure out
  * each theme's hooks (assuming other themes used the same system).
  *
- * @since 0.7
- * @uses get_template() Defines the theme prefix, which is generally 'hybrid'.
+ * @since 0.7.0
+ * @uses get_template() Defines the theme prefix based on the theme directory.
  * @global object $hybrid The global Hybrid object.
  * @return string $hybrid->prefix The prefix of the theme.
  */
@@ -24,18 +24,18 @@ function hybrid_get_prefix() {
 
 	/* If the global prefix isn't set, define it. Plugin/theme authors may also define a custom prefix. */
 	if ( empty( $hybrid->prefix ) )
-		$hybrid->prefix = apply_filters( 'hybrid_prefix', get_template() );
+		$hybrid->prefix = sanitize_key( apply_filters( 'hybrid_prefix', get_template() ) );
 
 	return $hybrid->prefix;
 }
 
 /**
- * Defines the theme textdomain. This allows the framework to recognize the proper textdomain 
- * of the theme. Theme developers building from the framework should use their template name 
- * (i.e., directory name) as their textdomain within template files.
+ * Defines the theme textdomain. This allows the framework to recognize the proper textdomain of the 
+ * parent theme. Theme developers building from the framework should use this function in their templates 
+ * to easily define the correct textdomain.
  *
- * @since 0.7
- * @uses get_template() Defines the theme textdomain, which is generally 'hybrid'.
+ * @since 0.7.0
+ * @uses get_template() Defines the theme textdomain based on the template directory.
  * @global object $hybrid The global Hybrid object.
  * @return string $hybrid->textdomain The textdomain of the theme.
  */
@@ -44,11 +44,60 @@ function hybrid_get_textdomain() {
 
 	/* If the global textdomain isn't set, define it. Plugin/theme authors may also define a custom textdomain. */
 	if ( empty( $hybrid->textdomain ) )
-		$hybrid->textdomain = apply_filters( hybrid_get_prefix() . '_textdomain', get_template() );
+		$hybrid->textdomain = sanitize_key( apply_filters( hybrid_get_prefix() . '_textdomain', get_template() ) );
 
 	return $hybrid->textdomain;
 }
 
+/**
+ * Returns the textdomain for the child theme.
+ *
+ * @since 1.2.0
+ * @uses get_stylesheet() Defines the child theme textdomain based on the stylesheet directory.
+ * @global object $hybrid The global Hybrid object.
+ * @return string $hybrid->child_theme_textdomain The textdomain of the child theme.
+ */
+function hybrid_get_child_textdomain() {
+	global $hybrid;
+
+	/* If a child theme isn't active, return an empty string. */
+	if ( !is_child_theme() )
+		return '';
+
+	/* If the global textdomain isn't set, define it. Plugin/theme authors may also define a custom textdomain. */
+	if ( empty( $hybrid->child_textdomain ) )
+		$hybrid->child_textdomain = sanitize_key( apply_filters( hybrid_get_prefix() . '_child_textdomain', get_stylesheet() ) );
+
+	return $hybrid->child_textdomain;
+}
+
+/**
+ * Filters the 'load_textdomain_mofile' filter hook so that we can change the directory and file name 
+ * of the mofile for translations.  This allows child themes to have a folder called /languages with translations
+ * of their parent theme so that the translations aren't lost on a parent theme upgrade.
+ *
+ * @since 0.9.0
+ * @param string $mofile File name of the .mo file.
+ * @param string $domain The textdomain currently being filtered.
+ */
+function hybrid_load_textdomain( $mofile, $domain ) {
+
+	/* If the $domain is for the parent or child theme, search for a $domain-$locale.mo file. */
+	if ( $domain == hybrid_get_textdomain() || $domain == hybrid_get_child_textdomain() ) {
+
+		/* Check for a $domain-$locale.mo file in the parent and child theme root and /languages folder. */
+		$locale = get_locale();
+		$locate_mofile = locate_template( array( "languages/{$domain}-{$locale}.mo", "{$domain}-{$locale}.mo" ) );
+
+		/* If a mofile was found based on the given format, set $mofile to that file name. */
+		if ( !empty( $locate_mofile ) )
+			$mofile = $locate_mofile;
+	}
+
+	/* Return the $mofile string. */
+	return $mofile;
+}
+
 /**
  * Adds contextual action hooks to the theme.  This allows users to easily add context-based content 
  * without having to know how to use WordPress conditional tags.  The theme handles the logic.
@@ -57,27 +106,29 @@ function hybrid_get_textdomain() {
  * give extra hooks such as 'hybrid_singular_header', 'hybrid_singular-post_header', and 
  * 'hybrid_singular-post-ID_header'.
  *
- * Major props to Ptah Dunbar for the do_atomic() function.
- * @link http://ptahdunbar.com/wordpress/smarter-hooks-context-sensitive-hooks
- *
- * @since 0.7
+ * @since 0.7.0
  * @uses hybrid_get_prefix() Gets the theme prefix.
  * @uses hybrid_get_context() Gets the context of the current page.
  * @param string $tag Usually the location of the hook but defines what the base hook is.
+ * @param mixed $arg,... Optional additional arguments which are passed on to the functions hooked to the action.
  */
-function do_atomic( $tag = '' ) {
-	if ( !$tag )
+function do_atomic( $tag = '', $arg = '' ) {
+	if ( empty( $tag ) )
 		return false;
 
 	/* Get the theme prefix. */
 	$pre = hybrid_get_prefix();
 
+	/* Get the args passed into the function and remove $tag. */
+	$args = func_get_args();
+	array_splice( $args, 0, 1 );
+
 	/* Do actions on the basic hook. */
-	do_action( "{$pre}_{$tag}" );
+	do_action_ref_array( "{$pre}_{$tag}", $args );
 
 	/* Loop through context array and fire actions on a contextual scale. */
 	foreach ( (array)hybrid_get_context() as $context )
-		do_action( "{$pre}_{$context}_{$tag}" );
+		do_action_ref_array( "{$pre}_{$context}_{$tag}", $args );
 }
 
 /**
@@ -88,26 +139,31 @@ function do_atomic( $tag = '' ) {
  * that to give extra hooks such as 'hybrid_singular_entry_meta', 'hybrid_singular-post_entry_meta', 
  * and 'hybrid_singular-post-ID_entry_meta'.
  *
- * @since 0.7
+ * @since 0.7.0
  * @uses hybrid_get_prefix() Gets the theme prefix.
  * @uses hybrid_get_context() Gets the context of the current page.
  * @param string $tag Usually the location of the hook but defines what the base hook is.
- * @param mixed $value The value to be filtered.
+ * @param mixed $value The value on which the filters hooked to $tag are applied on.
+ * @param mixed $var,... Additional variables passed to the functions hooked to $tag.
  * @return mixed $value The value after it has been filtered.
  */
 function apply_atomic( $tag = '', $value = '' ) {
-	if ( !$tag )
+	if ( empty( $tag ) )
 		return false;
 
 	/* Get theme prefix. */
 	$pre = hybrid_get_prefix();
 
+	/* Get the args passed into the function and remove $tag. */
+	$args = func_get_args();
+	array_splice( $args, 0, 1 );
+
 	/* Apply filters on the basic hook. */
-	$value = apply_filters( "{$pre}_{$tag}", $value );
+	$value = $args[0] = apply_filters_ref_array( "{$pre}_{$tag}", $args );
 
 	/* Loop through context array and apply filters on a contextual scale. */
 	foreach ( (array)hybrid_get_context() as $context )
-		$value = apply_filters( "{$pre}_{$context}_{$tag}", $value );
+		$value = $args[0] = apply_filters_ref_array( "{$pre}_{$context}_{$tag}", $args );
 
 	/* Return the final value once all filters have been applied. */
 	return $value;
@@ -118,7 +174,7 @@ function apply_atomic( $tag = '', $value = '' ) {
  * context-aware functionality alongside shortcodes. Rather than adding a lot of code to the 
  * function itself, developers can create individual functions to handle shortcodes.
  *
- * @since 0.7
+ * @since 0.7.0
  * @param string $tag Usually the location of the hook but defines what the base hook is.
  * @param mixed $value The value to be filtered.
  * @return mixed $value The value after it has been filtered.
@@ -127,36 +183,11 @@ function apply_atomic_shortcode( $tag = '', $value = '' ) {
 	return do_shortcode( apply_atomic( $tag, $value ) );
 }
 
-/**
- * Loads the Hybrid theme settings once and allows the input of the specific field the user would 
- * like to show.  Hybrid theme settings are added with 'autoload' set to 'yes', so the settings are 
- * only loaded once on each page load.
- *
- * @since 0.7
- * @uses get_option() Gets an option from the database.
- * @uses hybrid_get_prefix() Gets the prefix of the theme.
- * @global object $hybrid The global Hybrid object.
- * @global array $hybrid_settings Deprecated. Developers should use hybrid_get_setting().
- * @param string $option The specific theme setting the user wants.
- * @return string|int|array $settings[$option] Specific setting asked for.
- */
-function hybrid_get_setting( $option = '' ) {
-	global $hybrid, $hybrid_settings;
-
-	if ( !$option )
-		return false;
-
-	if ( !is_array( $hybrid->settings ) )
-		$hybrid->settings = $hybrid_settings = get_option( hybrid_get_prefix() . '_theme_settings' );
-
-	return $hybrid->settings[$option];
-}
-
 /**
  * The theme can save multiple things in a transient to help speed up page load times. We're
  * setting a default of 12 hours or 43,200 seconds (60 * 60 * 12).
  *
- * @since 0.8
+ * @since 0.8.0
  * @return int Transient expiration time in seconds.
  */
 function hybrid_get_transient_expiration() {
@@ -167,7 +198,7 @@ function hybrid_get_transient_expiration() {
  * Function for formatting a hook name if needed. It automatically adds the theme's prefix to 
  * the hook, and it will add a context (or any variable) if it's given.
  *
- * @since 0.7
+ * @since 0.7.0
  * @param string $tag The basic name of the hook (e.g., 'before_header').
  * @param string $context A specific context/value to be added to the hook.
  */
@@ -175,4 +206,67 @@ function hybrid_format_hook( $tag, $context = '' ) {
 	return hybrid_get_prefix() . ( ( !empty( $context ) ) ? "_{$context}" : "" ). "_{$tag}";
 }
 
+/**
+ * Function for setting the content width of a theme.  This does not check if a content width has been set; it 
+ * simply overwrites whatever the content width is.
+ *
+ * @since 1.2.0
+ * @global int $content_width The width for the theme's content area.
+ * @param int $width Numeric value of the width to set.
+ */
+function hybrid_set_content_width( $width = '' ) {
+	global $content_width;
+
+	$content_width = absint( $width );
+}
+
+/**
+ * Function for getting the theme's content width.
+ *
+ * @since 1.2.0
+ * @global int $content_width The width for the theme's content area.
+ * @return int $content_width
+ */
+function hybrid_get_content_width() {
+	global $content_width;
+
+	return $content_width;
+}
+
+/**
+ * Gets theme data and stores it in the global $hybrid variable.  By storing it, it can be accessed quickly without 
+ * having to run through the get_theme_data() function again.
+ *
+ * @since 1.2.0
+ * @param string $path Whether to use the template (parent theme) or stylesheet (child theme) path.
+ */
+function hybrid_get_theme_data( $path = 'template' ) {
+	global $hybrid;
+
+	/* If 'template' is requested, get the parent theme data. */
+	if ( 'template' == $path ) {
+
+		/* If the parent theme data isn't set, grab it with the get_theme_data() function. */
+		if ( empty( $hybrid->theme_data ) )
+			$hybrid->theme_data = get_theme_data( trailingslashit( TEMPLATEPATH ) . 'style.css' );
+
+		/* Return the parent theme data. */
+		return $hybrid->theme_data;
+	}
+
+	/* If 'stylesheet' is requested, get the child theme data. */
+	elseif ( 'stylesheet' == $path ) {
+
+		/* If the child theme data isn't set, grab it with the get_theme_data() function. */
+		if ( empty( $hybrid->child_theme_data ) )
+			$hybrid->child_theme_data = get_theme_data( trailingslashit( STYLESHEETPATH ) . 'style.css' );
+
+		/* Return the child theme data. */
+		return $hybrid->child_theme_data;
+	}
+
+	/* Return false for everything else. */
+	return false;
+}
+
 ?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/functions/deprecated.php b/wp-content/themes/hybrid/library/functions/deprecated.php
new file mode 100644
index 000000000..1279a95e7
--- /dev/null
+++ b/wp-content/themes/hybrid/library/functions/deprecated.php
@@ -0,0 +1,550 @@
+<?php
+/**
+ * Deprecated functions that should be avoided in favor of newer functions. Also handles removed 
+ * functions to avoid errors. Developers should not use these functions in their parent themes and users 
+ * should not use these functions in their child themes.  The functions below will all be removed at some 
+ * point in a future release.  If your theme is using one of these, you should use the listed alternative or 
+ * remove it from your theme if necessary.
+ *
+ * @package HybridCore
+ * @subpackage Functions
+ */
+
+/**
+ * @since 0.2.0
+ * @deprecated 0.7.0
+ */
+function hybrid_after_single() {
+	_deprecated_function( __FUNCTION__, '0.7', "do_atomic( 'after_singular' )" );
+	hybrid_after_singular();
+}
+
+/**
+ * @since 0.2.0
+ * @deprecated 0.7.0
+ */
+function hybrid_after_page() {
+	_deprecated_function( __FUNCTION__, '0.7', "do_atomic( 'after_singular' )" );
+	hybrid_after_singular();
+}
+
+/**
+ * @since 0.2.2
+ * @deprecated 0.8.0
+ */
+function hybrid_comment_author() {
+	_deprecated_function( __FUNCTION__, '0.8', 'hybrid_comment_author_shortcode()' );
+	return hybrid_comment_author_shortcode();
+}
+
+/**
+ * @since 0.4.0
+ * @deprecated 1.0.0
+ */
+function hybrid_theme_settings() {
+	_deprecated_function( __FUNCTION__, '1.0.0', 'hybrid_get_default_theme_settings()' );
+	return apply_filters( hybrid_get_prefix() . '_settings_args', hybrid_get_default_theme_settings() );
+}
+
+/**
+ * @since 0.4.0
+ * @deprecated 1.0.0
+ */
+function hybrid_doctype() {
+	_deprecated_function( __FUNCTION__, '1.0.0', '' );
+	if ( !preg_match( "/MSIE 6.0/", esc_attr( $_SERVER['HTTP_USER_AGENT'] ) ) )
+		$doctype = '<' . '?xml version="1.0" encoding="' . get_bloginfo( 'charset' ) . '"?>' . "\n";
+
+	$doctype .= '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">' . "\n";
+	echo apply_atomic( 'doctype', $doctype );
+}
+
+/**
+ * @since 0.4.0
+ * @deprecated 1.0.0
+ */
+function hybrid_meta_content_type() {
+	_deprecated_function( __FUNCTION__, '1.0.0', '' );
+	$content_type = '<meta http-equiv="Content-Type" content="' . get_bloginfo( 'html_type' ) . '; charset=' . get_bloginfo( 'charset' ) . '" />' . "\n";
+	echo apply_atomic( 'meta_content_type', $content_type );
+}
+
+/**
+ * @since 0.4.0
+ * @deprecated 1.0.0
+ */
+function hybrid_head_pingback() {
+	_deprecated_function( __FUNCTION__, '1.0.0', '' );
+	$pingback = '<link rel="pingback" href="' . get_bloginfo( 'pingback_url' ) . '" />' . "\n";
+	echo apply_atomic( 'head_pingback', $pingback );
+}
+
+/**
+ * @since 0.6.0
+ * @deprecated 1.0.0
+ */
+function hybrid_profile_uri() {
+	_deprecated_function( __FUNCTION__, '1.0.0', '' );
+	echo apply_atomic( 'profile_uri', 'http://gmpg.org/xfn/11' );
+}
+
+/**
+ * @since 0.3.2
+ * @deprecated 1.0.0
+ */
+function hybrid_before_html() {
+	_deprecated_function( __FUNCTION__, '1.0.0', "do_atomic( 'before_html' )" );
+	do_atomic( 'before_html' );
+}
+
+/**
+ * @since 0.3.2
+ * @deprecated 1.0.0
+ */
+function hybrid_after_html() {
+	_deprecated_function( __FUNCTION__, '1.0.0', "do_atomic( 'after_html' )" );
+	do_atomic( 'after_html' );
+}
+
+/**
+ * @since 0.1.0
+ * @deprecated 1.0.0
+ */
+function hybrid_head() {
+	_deprecated_function( __FUNCTION__, '1.0.0', 'wp_head' );
+	do_atomic( 'head' );
+}
+
+/**
+ * @since 0.1.0
+ * @deprecated 1.0.0
+ */
+function hybrid_before_header() {
+	_deprecated_function( __FUNCTION__, '1.0.0', "do_atomic( 'before_header' )" );
+	do_atomic( 'before_header' );
+}
+
+/**
+ * @since 0.1.0
+ * @deprecated 1.0.0
+ */
+function hybrid_header() {
+	_deprecated_function( __FUNCTION__, '1.0.0', "do_atomic( 'header' )" );
+	do_atomic( 'header' );
+}
+
+/**
+ * @since 0.1.0
+ * @deprecated 1.0.0
+ */
+function hybrid_after_header() {
+	_deprecated_function( __FUNCTION__, '1.0.0', "do_atomic( 'after_header' )" );
+	do_atomic( 'after_header' );
+}
+
+/**
+ * @since 0.8.0
+ * @deprecated 1.0.0
+ */
+function hybrid_before_primary_menu() {
+	_deprecated_function( __FUNCTION__, '1.0.0', "do_atomic( 'before_primary_menu' )" );
+	do_atomic( 'before_primary_menu' );
+}
+
+/**
+ * @since 0.8.0
+ * @deprecated 1.0.0
+ */
+function hybrid_after_primary_menu() {
+	_deprecated_function( __FUNCTION__, '1.0.0', "do_atomic( 'after_primary_menu' )" );
+	do_atomic( 'after_primary_menu' );
+}
+
+/**
+ * @since 0.1.0
+ * @deprecated 1.0.0
+ */
+function hybrid_before_container() {
+	_deprecated_function( __FUNCTION__, '1.0.0', "do_atomic( 'before_container' )" );
+	do_atomic( 'before_container' );
+}
+
+/**
+ * @since 0.1.0
+ * @deprecated 1.0.0
+ */
+function hybrid_before_content() {
+	_deprecated_function( __FUNCTION__, '1.0.0', "do_atomic( 'before_content' )" );
+	do_atomic( 'before_content' );
+}
+
+/**
+ * @since 0.1.0
+ * @deprecated 1.0.0
+ */
+function hybrid_after_content() {
+	_deprecated_function( __FUNCTION__, '1.0.0', "do_atomic( 'after_content' )" );
+	do_atomic( 'after_content' );
+}
+
+/**
+ * @since 0.5.0
+ * @deprecated 1.0.0
+ */
+function hybrid_before_entry() {
+	_deprecated_function( __FUNCTION__, '1.0.0', "do_atomic( 'before_entry' )" );
+	do_atomic( 'before_entry' );
+}
+
+/**
+ * @since 0.5.0
+ * @deprecated 1.0.0
+ */
+function hybrid_after_entry() {
+	_deprecated_function( __FUNCTION__, '1.0.0', "do_atomic( 'after_entry' )" );
+	do_atomic( 'after_entry' );
+}
+
+/**
+ * @since 0.7.0
+ * @deprecated 1.0.0
+ */
+function hybrid_after_singular() {
+	_deprecated_function( __FUNCTION__, '1.0.0', "do_atomic( 'after_singular' )" );
+
+	if ( is_singular( 'post' ) && !is_attachment() )
+		do_action( 'hybrid_after_single' );
+	elseif ( is_page() )
+		do_action( 'hybrid_after_page' );
+
+	do_atomic( 'after_singular' );
+}
+
+/**
+ * @since 0.1.0
+ * @deprecated 1.0.0
+ */
+function hybrid_before_primary() {
+	_deprecated_function( __FUNCTION__, '1.0.0', "do_atomic( 'before_primary' )" );
+	do_atomic( 'before_primary' );
+}
+
+/**
+ * @since 0.1.0
+ * @deprecated 1.0.0
+ */
+function hybrid_after_primary() {
+	_deprecated_function( __FUNCTION__, '1.0.0', "do_atomic( 'after_primary' )" );
+	do_atomic( 'after_primary' );
+}
+
+/**
+ * @since 0.2.0
+ * @deprecated 1.0.0
+ */
+function hybrid_before_secondary() {
+	_deprecated_function( __FUNCTION__, '1.0.0', "do_atomic( 'before_secondary' )" );
+	do_atomic( 'before_secondary' );
+}
+
+/**
+ * @since 0.2.0
+ * @deprecated 1.0.0
+ */
+function hybrid_after_secondary() {
+	_deprecated_function( __FUNCTION__, '1.0.0', "do_atomic( 'after_secondary' )" );
+	do_atomic( 'after_secondary' );
+}
+
+/**
+ * @since 0.3.1
+ * @deprecated 1.0.0
+ */
+function hybrid_before_subsidiary() {
+	_deprecated_function( __FUNCTION__, '1.0.0', "do_atomic( 'before_subsidiary' )" );
+	do_atomic( 'before_subsidiary' );
+}
+
+/**
+ * @since 0.3.1
+ * @deprecated 1.0.0
+ */
+function hybrid_after_subsidiary() {
+	_deprecated_function( __FUNCTION__, '1.0.0', "do_atomic( 'after_subsidiary' )" );
+	do_atomic( 'after_subsidiary' );
+}
+
+/**
+ * @since 0.1.0
+ * @deprecated 1.0.0
+ */
+function hybrid_after_container() {
+	_deprecated_function( __FUNCTION__, '1.0.0', "do_atomic( 'after_container' )" );
+	do_atomic( 'after_container' );
+}
+
+/**
+ * @since 0.1.0
+ * @deprecated 1.0.0
+ */
+function hybrid_before_footer() {
+	_deprecated_function( __FUNCTION__, '1.0.0', "do_atomic( 'before_footer' )" );
+	do_atomic( 'before_footer' );
+}
+
+/**
+ * @since 0.1.0
+ * @deprecated 1.0.0
+ */
+function hybrid_footer() {
+	_deprecated_function( __FUNCTION__, '1.0.0', "do_atomic( 'footer' )" );
+	do_atomic( 'footer' );
+}
+
+/**
+ * @since 0.1.0
+ * @deprecated 1.0.0
+ */
+function hybrid_after_footer() {
+	_deprecated_function( __FUNCTION__, '1.0.0', "do_atomic( 'after_footer' )" );
+	do_atomic( 'after_footer' );
+}
+
+/**
+ * @since 0.5.0
+ * @deprecated 1.0.0
+ */
+function hybrid_before_comment() {
+	_deprecated_function( __FUNCTION__, '1.0.0', "do_atomic( 'before_comment' )" );
+	do_atomic( 'before_comment' );
+}
+
+/**
+ * @since 0.5.0
+ * @deprecated 1.0.0
+ */
+function hybrid_after_comment() {
+	_deprecated_function( __FUNCTION__, '1.0.0', "do_atomic( 'after_comment' )" );
+	do_atomic( 'after_comment' );
+}
+
+/**
+ * @since 0.6.0
+ * @deprecated 1.0.0
+ */
+function hybrid_before_comment_list() {
+	_deprecated_function( __FUNCTION__, '1.0.0', "do_atomic( 'before_comment_list' )" );
+	do_atomic( 'before_comment_list' );
+}
+
+/**
+ * @since 0.6.0
+ * @deprecated 1.0.0
+ */
+function hybrid_after_comment_list() {
+	_deprecated_function( __FUNCTION__, '1.0.0', "do_atomic( 'after_comment_list' )" );
+	do_atomic( 'after_comment_list' );
+}
+
+/* @deprecated 1.0.0. Backwards compatibility with old theme settings. */
+add_action( 'check_admin_referer', 'hybrid_back_compat_update_settings' );
+
+/**
+ * Backwards compatibility function for updating child theme settings.  Do not use this function or the 
+ * available hook in development.
+ *
+ * @since 1.0.0
+ * @deprecated 1.0.0
+ */
+function hybrid_back_compat_update_settings( $action ) {
+	_deprecated_function( __FUNCTION__, '1.0.0' );
+
+	$prefix = hybrid_get_prefix();
+
+	if ( "{$prefix}_theme_settings-options" == $action )
+		do_action( "{$prefix}_update_settings_page" );
+}
+
+/**
+ * @since 0.1.0
+ * @deprecated 1.2.0
+ */
+function hybrid_enqueue_script() {
+	_deprecated_function( __FUNCTION__, '1.2.0', 'hybrid_enqueue_scripts' );
+	return;
+}
+
+/**
+ * @since 1.0.0
+ * @deprecated 1.2.0
+ */
+function hybrid_admin_enqueue_style() {
+	_deprecated_function( __FUNCTION__, '1.2.0', 'hybrid_admin_enqueue_styles' );
+	return;
+}
+
+/**
+ * @since 0.7.0
+ * @deprecated 1.2.0
+ */
+function hybrid_settings_page_enqueue_style() {
+	_deprecated_function( __FUNCTION__, '1.2.0', 'hybrid_settings_page_enqueue_styles' );
+	return;
+}
+
+/**
+ * @since 0.7.0
+ * @deprecated 1.2.0
+ */
+function hybrid_settings_page_enqueue_script() {
+	_deprecated_function( __FUNCTION__, '1.2.0', 'hybrid_settings_page_enqueue_scripts' );
+	return;
+}
+
+/* === Removed Functions === */
+
+/* Functions removed in the 0.8 branch. */
+
+function hybrid_content_wrapper() {
+	hybrid_function_removed( __FUNCTION__ );
+}
+
+function hybrid_handle_attachment() {
+	hybrid_function_removed( __FUNCTION__ );
+}
+
+function hybrid_widget_class() {
+	hybrid_function_removed( __FUNCTION__ );
+}
+
+function hybrid_before_ping_list() {
+	hybrid_function_removed( __FUNCTION__ );
+}
+
+function hybrid_after_ping_list() {
+	hybrid_function_removed( __FUNCTION__ );
+}
+
+function hybrid_pings_callback() {
+	hybrid_function_removed( __FUNCTION__ );
+}
+
+function hybrid_pings_end_callback() {
+	hybrid_function_removed( __FUNCTION__ );
+}
+
+/* Functions removed in the 1.2 branch. */
+
+function hybrid_get_comment_form() {
+	hybrid_function_removed( __FUNCTION__ );
+}
+
+function hybrid_before_comment_form() {
+	hybrid_function_removed( __FUNCTION__ );
+}
+
+function hybrid_after_comment_form() {
+	hybrid_function_removed( __FUNCTION__ );
+}
+
+function hybrid_get_utility_after_single() {
+	hybrid_function_removed( __FUNCTION__ );
+}
+
+function hybrid_get_utility_after_page() {
+	hybrid_function_removed( __FUNCTION__ );
+}
+
+function hybrid_create_post_meta_box() {
+	hybrid_function_removed( __FUNCTION__ );
+}
+
+function hybrid_post_meta_box_args() {
+	hybrid_function_removed( __FUNCTION__ );
+}
+
+function hybrid_post_meta_box() {
+	hybrid_function_removed( __FUNCTION__ );
+}
+
+function hybrid_post_meta_box_text() {
+	hybrid_function_removed( __FUNCTION__ );
+}
+
+function hybrid_post_meta_box_select() {
+	hybrid_function_removed( __FUNCTION__ );
+}
+
+function hybrid_post_meta_box_textarea() {
+	hybrid_function_removed( __FUNCTION__ );
+}
+
+function hybrid_post_meta_box_radio() {
+	hybrid_function_removed( __FUNCTION__ );
+}
+
+function hybrid_save_post_meta_box() {
+	hybrid_function_removed( __FUNCTION__ );
+}
+
+function hybrid_create_settings_meta_boxes() {
+	hybrid_function_removed( __FUNCTION__ );
+}
+
+function hybrid_footer_settings_meta_box() {
+	hybrid_function_removed( __FUNCTION__ );
+}
+
+function hybrid_about_theme_meta_box() {
+	hybrid_function_removed( __FUNCTION__ );
+}
+
+function hybrid_load_settings_page() {
+	hybrid_function_removed( __FUNCTION__ );
+}
+
+function hybrid_page_nav() {
+	hybrid_function_removed( __FUNCTION__ );
+}
+
+function hybrid_cat_nav() {
+	hybrid_function_removed( __FUNCTION__ );
+}
+
+function hybrid_category_menu() {
+	hybrid_function_removed( __FUNCTION__ );
+}
+
+function hybrid_search_form() {
+	hybrid_function_removed( __FUNCTION__ );
+}
+
+function hybrid_post_class() {
+	hybrid_function_removed( __FUNCTION__ );
+}
+
+function is_sidebar_active() {
+	hybrid_function_removed( __FUNCTION__ );
+}
+
+function hybrid_enqueue_style() {
+	hybrid_function_removed( __FUNCTION__ );
+}
+
+function hybrid_add_theme_support() {
+	hybrid_function_removed( __FUNCTION__ );
+}
+
+function hybrid_post_stylesheets() {
+	hybrid_function_removed( __FUNCTION__ );
+}
+
+/**
+ * Message to display for removed functions.
+ * @since 0.5.0
+ */
+function hybrid_function_removed( $func = '' ) {
+	die( sprintf( __( '<code>%1$s</code> &mdash; This function has been removed or replaced by another function.', hybrid_get_textdomain() ), $func ) );
+}
+
+?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/functions/media.php b/wp-content/themes/hybrid/library/functions/media.php
index 8cd70e82a..e1d2019ec 100644
--- a/wp-content/themes/hybrid/library/functions/media.php
+++ b/wp-content/themes/hybrid/library/functions/media.php
@@ -1,85 +1,87 @@
 <?php
 /**
- * Functions file for loading scripts and styles. It also handles attachment files by 
- * displaying appropriate HTML element. Other media is handled through the theme 
- * extensions: get-the-image.php, get-the-object.php.
+ * Functions file for loading scripts and stylesheets.  This file also handles the output of attachment files 
+ * by displaying appropriate HTML elements for the attachments.
  *
- * @package Hybrid
+ * @package HybridCore
  * @subpackage Functions
  */
 
+/* Register Hybrid Core scripts. */
+add_action( 'wp_enqueue_scripts', 'hybrid_register_scripts', 1 );
+
+/* Load Hybrid Core scripts. */
+add_action( 'wp_enqueue_scripts', 'hybrid_enqueue_scripts' );
+
+/* Load the development stylsheet in script debug mode. */
+add_filter( 'stylesheet_uri', 'hybrid_debug_stylesheet', 10, 2 );
+
 /**
- * Function to load CSS at an appropriate time. Adds print.css if user chooses to use it. 
- * Users should load their own CSS using wp_enqueue_style() in their child theme's 
- * functions.php file.
+ * Registers JavaScript files for the framework.  This function merely registers scripts with WordPress using
+ * the wp_register_script() function.  It does not load any script files on the site.  If a theme wants to register 
+ * its own custom scripts, it should do so on the 'wp_enqueue_scripts' hook.
  *
- * @since 0.1
- * @link http://codex.wordpress.org/Function_Reference/wp_enqueue_style
+ * @since 1.2.0
  */
-function hybrid_enqueue_style() {
-	global $wp_query;
-
-	/* If is admin, don't load styles. */
-	if ( is_admin() )
-		return;
-
-	/* Get the theme prefix. */
-	$prefix = hybrid_get_prefix();
+function hybrid_register_scripts() {
 
-	/* Load the print stylesheet. */
-	if ( hybrid_get_setting( 'print_style' ) )
-		wp_enqueue_style( "{$prefix}-print", esc_url( apply_atomic( 'print_style', THEME_CSS . '/print.css' ) ), false, 0.7, 'print' );
+	/* Register the 'drop-downs' script if the current theme supports 'hybrid-core-drop-downs'. */
+	if ( current_theme_supports( 'hybrid-core-drop-downs' ) )
+		wp_register_script( 'drop-downs', esc_url( apply_atomic( 'drop_downs_script', trailingslashit( HYBRID_JS ) . 'drop-downs.js' ) ), array( 'jquery' ), '20110705', true );
 }
 
 /**
- * Function to load JavaScript at appropriate time. Loads comment reply script only if 
- * users choose to use nested comments. Users should load custom JavaScript with 
- * wp_enqueue_script() in their child theme's functions.php file.
+ * Tells WordPress to load the scripts needed for the framework using the wp_enqueue_script() function.
  *
- * If selected, the drop-downs.js file will be loaded, which is a bundled version of the
- * Superfish jQuery plugin.
- *
- * @since 0.1
- * @link http://codex.wordpress.org/Function_Reference/wp_enqueue_script
- * @link http://users.tpg.com.au/j_birch/plugins/superfish
+ * @since 1.2.0
  */
-function hybrid_enqueue_script() {
-
-	/* Don't load any scripts in the admin. */
-	if ( is_admin() )
-		return;
+function hybrid_enqueue_scripts() {
 
-	/* Comment reply. */
+	/* Load the comment reply script on singular posts with open comments if threaded comments are supported. */
 	if ( is_singular() && get_option( 'thread_comments' ) && comments_open() )
 		wp_enqueue_script( 'comment-reply' );
 
-	/* Superfish drop-down menus. */
-	if ( hybrid_get_setting( 'superfish_js' ) )
-		wp_enqueue_script( 'drop-downs', esc_url( apply_atomic( 'drop_downs_script', THEME_JS . '/drop-downs.js' ) ), array( 'jquery' ), 1.4, true );
+	/* Load the 'drop-downs' script if the current theme supports 'hybrid-core-drop-downs'. */
+	if ( current_theme_supports( 'hybrid-core-drop-downs' ) )
+		wp_enqueue_script( 'drop-downs' );
 }
 
 /**
- * Disables stylesheets for particular plugins to allow the theme to easily write its own
- * styles for the plugins' features.
+ * Function for using a debug stylesheet when developing.  To develop with the debug stylesheet, 
+ * SCRIPT_DEBUG must be set to 'true' in the 'wp-config.php' file.  This will check if a 'style.dev.css'
+ * file is present within the theme folder and use it if it exists.  Else, it defaults to 'style.css'.
  *
- * @since 0.7
- * @link http://wordpress.org/extend/plugins/wp-pagenavi
+ * @since 0.9.0
  */
-function hybrid_disable_styles() {
-	/* Deregister the WP PageNavi plugin style. */
-	wp_deregister_style( 'wp-pagenavi' );
+function hybrid_debug_stylesheet( $stylesheet_uri, $stylesheet_dir_uri ) {
+
+	/* If SCRIPT_DEBUG is set to true and the theme supports 'dev-stylesheet'. */
+	if ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG && current_theme_supports( 'dev-stylesheet' ) ) {
+
+		/* Remove the stylesheet directory URI from the file name. */
+		$stylesheet = str_replace( trailingslashit( $stylesheet_dir_uri ), '', $stylesheet_uri );
+
+		/* Change the stylesheet name to 'style.dev.css'. */
+		$stylesheet = str_replace( '.css', '.dev.css', $stylesheet );
+
+		/* If the stylesheet exists in the stylesheet directory, set the stylesheet URI to the dev stylesheet. */
+		if ( file_exists( trailingslashit( STYLESHEETPATH ) . $stylesheet ) )
+			$stylesheet_uri = trailingslashit( $stylesheet_dir_uri ) . $stylesheet;
+	}
+
+	/* Return the theme stylesheet. */
+	return $stylesheet_uri;
 }
 
 /**
- * Loads the correct function for handling attachments. Checks the attachment mime 
- * type to call correct function. Image attachments are not loaded with this function.
- * The functionality for them resides in image.php.
+ * Loads the correct function for handling attachments.  Checks the attachment mime type to call 
+ * correct function. Image attachments are not loaded with this function.  The functionality for them 
+ * should be handled by the theme's attachment or image attachment file.
  *
- * Ideally, all attachments would be appropriately handled within their templates. However, 
- * this could lead to messy template files. For now, we'll use separate functions for handling 
- * attachment content. The biggest issue here is with handling different video types.
+ * Ideally, all attachments would be appropriately handled within their templates. However, this could 
+ * lead to messy template files.
  *
- * @since 0.5
+ * @since 0.5.0
  * @uses get_post_mime_type() Gets the mime type of the attachment.
  * @uses wp_get_attachment_url() Gets the URL of the attachment file.
  */
@@ -100,45 +102,44 @@ function hybrid_attachment() {
 }
 
 /**
- * Handles application attachments on their attachment pages.
- * Uses the <object> tag to embed media on those pages.
+ * Handles application attachments on their attachment pages.  Uses the <object> tag to embed media 
+ * on those pages.
  *
- * @todo Run a battery of tests on many different applications.
- * @todo Figure out what to do with FLV files outside of the current functionality.
- *
- * @since 0.3
+ * @since 0.3.0
  * @param string $mime attachment mime type
  * @param string $file attachment file URL
  * @return string
  */
 function hybrid_application_attachment( $mime = '', $file = '' ) {
-	$application = '<object class="text" type="' . $mime . '" data="' . $file . '" width="400">';
-	$application .= '<param name="src" value="' . $file . '" />';
+	$embed_defaults = wp_embed_defaults();
+	$application = '<object class="text" type="' . esc_attr( $mime ) . '" data="' . esc_url( $file ) . '" width="' . esc_attr( $embed_defaults['width'] ) . '" height="' . esc_attr( $embed_defaults['height'] ) . '">';
+	$application .= '<param name="src" value="' . esc_url( $file ) . '" />';
 	$application .= '</object>';
 
 	return $application;
 }
 
 /**
- * Handles text attachments on their attachment pages.
- * Uses the <object> element to embed media in the pages.
+ * Handles text attachments on their attachment pages.  Uses the <object> element to embed media 
+ * in the pages.
  *
- * @since 0.3
+ * @since 0.3.0
  * @param string $mime attachment mime type
  * @param string $file attachment file URL
  * @return string
  */
 function hybrid_text_attachment( $mime = '', $file = '' ) {
-	$text = '<object class="text" type="' . $mime . '" data="' . $file . '" width="400">';
-	$text .= '<param name="src" value="' . $file . '" />';
+	$embed_defaults = wp_embed_defaults();
+	$text = '<object class="text" type="' . esc_attr( $mime ) . '" data="' . esc_url( $file ) . '" width="' . esc_attr( $embed_defaults['width'] ) . '" height="' . esc_attr( $embed_defaults['height'] ) . '">';
+	$text .= '<param name="src" value="' . esc_url( $file ) . '" />';
 	$text .= '</object>';
 
 	return $text;
 }
 
 /**
- * Handles audio attachments on their attachment pages.
- * Puts audio/mpeg and audio/wma files into an <object> element.
+ * Handles audio attachments on their attachment pages.  Puts audio/mpeg and audio/wma files into 
+ * an <object> element.
  *
  * @todo Test out and support more audio types.
  *
@@ -148,8 +149,9 @@ function hybrid_text_attachment( $mime = '', $file = '' ) {
  * @return string
  */
 function hybrid_audio_attachment( $mime = '', $file = '' ) {
-	$audio = '<object type="' . $mime . '" class="player audio" data="' . $file . '" width="400" height="50">';
-		$audio .= '<param name="src" value="' . $file . '" />';
+	$embed_defaults = wp_embed_defaults();
+	$audio = '<object type="' . esc_attr( $mime ) . '" class="player audio" data="' . esc_url( $file ) . '" width="' . esc_attr( $embed_defaults['width'] ) . '" height="' . esc_attr( $embed_defaults['height'] ) . '">';
+		$audio .= '<param name="src" value="' . esc_url( $file ) . '" />';
 		$audio .= '<param name="autostart" value="false" />';
 		$audio .= '<param name="controller" value="true" />';
 	$audio .= '</object>';
@@ -158,12 +160,7 @@ function hybrid_audio_attachment( $mime = '', $file = '' ) {
 }
 
 /**
- * Handles video attachments on attachment pages.
- * Add other video types to the <object> element.
- *
- * In 0.6, FLV files were moved to using hybrid_application_attachment.
- *
- * @todo Test out and support more video types.
+ * Handles video attachments on attachment pages.  Add other video types to the <object> element.
  *
  * @since 0.2.2
  * @param string $mime attachment mime type
@@ -171,11 +168,13 @@ function hybrid_audio_attachment( $mime = '', $file = '' ) {
  * @return string
  */
 function hybrid_video_attachment( $mime = false, $file = false ) {
+	$embed_defaults = wp_embed_defaults();
+
 	if ( $mime == 'video/asf' )
 		$mime = 'video/x-ms-wmv';
 
-	$video = '<object type="' . $mime . '" class="player video" data="' . $file . '" width="400" height="320">';
-		$video .= '<param name="src" value="' . $file . '" />';
+	$video = '<object type="' . esc_attr( $mime ) . '" class="player video" data="' . esc_url( $file ) . '" width="' . esc_attr( $embed_defaults['width'] ) . '" height="' . esc_attr( $embed_defaults['height'] ) . '">';
+		$video .= '<param name="src" value="' . esc_url( $file ) . '" />';
 		$video .= '<param name="autoplay" value="false" />';
 		$video .= '<param name="allowfullscreen" value="true" />';
 		$video .= '<param name="controller" value="true" />';
diff --git a/wp-content/themes/hybrid/library/functions/menus.php b/wp-content/themes/hybrid/library/functions/menus.php
index f98b7d49a..3cf18956a 100644
--- a/wp-content/themes/hybrid/library/functions/menus.php
+++ b/wp-content/themes/hybrid/library/functions/menus.php
@@ -1,45 +1,43 @@
 <?php
 /**
- * Functions for dealing with menus and menu items within the theme. WP menu items must be 
- * unregistered. Hybrid menu items must be registered in their place. All menus are loaded 
- * and registered with WP.
+ * The menus functions deal with registering nav menus within WordPress for the core framework.  Theme 
+ * developers may use the default menu(s) provided by the framework within their own themes, decide not
+ * to use them, or register additional menus.
  *
- * @package Hybrid
+ * @package HybridCore
  * @subpackage Functions
  */
 
-/**
- * Add theme support for menus.
- * @since 0.8
- */
-add_theme_support( 'menus' );
-
-/**
- * Register menus.
- * @since 0.8
- */
+/* Register nav menus. */
 add_action( 'init', 'hybrid_register_menus' );
 
 /**
- * Registers the theme's menus.
+ * Registers the the framework's default menus based on the menus the theme has registered support for.
  *
- * @since 0.8
- * @uses is_nav_menu() Checks if a menu exists.
- * @uses locate_template() Checks for template in child and parent theme.
+ * @since 0.8.0
+ * @uses register_nav_menu() Registers a nav menu with WordPress.
+ * @link http://codex.wordpress.org/Function_Reference/register_nav_menu
  */
 function hybrid_register_menus() {
-	register_nav_menu( 'primary-menu', __( 'Primary Menu', hybrid_get_textdomain() ) );
-}
 
-/**
- * Loads the 'Primary Menu' template file.  Users can overwrite menu-primary.php in their child
- * theme folder.
- *
- * @since 0.8
- * @uses locate_template() Checks for template in child and parent theme.
- */
-function hybrid_get_primary_menu() {
-	locate_template( array( 'menu-primary.php', 'menu.php' ), true );
+	/* Get theme-supported menus. */
+	$menus = get_theme_support( 'hybrid-core-menus' );
+
+	/* If there is no array of menus IDs, return. */
+	if ( !is_array( $menus[0] ) )
+		return;
+
+	/* Register the 'primary' menu. */
+	if ( in_array( 'primary', $menus[0] ) )
+		register_nav_menu( 'primary', _x( 'Primary', 'nav menu location', hybrid_get_textdomain() ) );
+
+	/* Register the 'secondary' menu. */
+	if ( in_array( 'secondary', $menus[0] ) )
+		register_nav_menu( 'secondary', _x( 'Secondary', 'nav menu location', hybrid_get_textdomain() ) );
+
+	/* Register the 'subsidiary' menu. */
+	if ( in_array( 'subsidiary', $menus[0] ) )
+		register_nav_menu( 'subsidiary', _x( 'Subsidiary', 'nav menu location', hybrid_get_textdomain() ) );
 }
 
 ?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/functions/settings.php b/wp-content/themes/hybrid/library/functions/settings.php
new file mode 100644
index 000000000..b9ef0e3bd
--- /dev/null
+++ b/wp-content/themes/hybrid/library/functions/settings.php
@@ -0,0 +1,81 @@
+<?php
+/**
+ * Functions for dealing with theme settings on both the front end of the site and the admin.  This allows us 
+ * to set some default settings and make it easy for theme developers to quickly grab theme settings from 
+ * the database.  This file is only loaded if the theme adds support for the 'hybrid-core-theme-settings' 
+ * feature.
+ *
+ * @package HybridCore
+ * @subpackage Functions
+ */
+
+/**
+ * Loads the Hybrid theme settings once and allows the input of the specific field the user would 
+ * like to show.  Hybrid theme settings are added with 'autoload' set to 'yes', so the settings are 
+ * only loaded once on each page load.
+ *
+ * @since 0.7.0
+ * @uses get_option() Gets an option from the database.
+ * @uses hybrid_get_prefix() Gets the prefix of the theme.
+ * @global object $hybrid The global Hybrid object.
+ * @param string $option The specific theme setting the user wants.
+ * @return string|int|array $settings[$option] Specific setting asked for.
+ */
+function hybrid_get_setting( $option = '' ) {
+	global $hybrid;
+
+	/* If no specific option was requested, return false. */
+	if ( !$option )
+		return false;
+
+	/* If the settings array hasn't been set, call get_option() to get an array of theme settings. */
+	if ( !isset( $hybrid->settings ) )
+		$hybrid->settings = get_option( hybrid_get_prefix() . '_theme_settings', hybrid_get_default_theme_settings() );
+
+	/* If the settings isn't an array or the specific option isn't in the array, return false. */
+	if ( !is_array( $hybrid->settings ) || empty( $hybrid->settings[$option] ) )
+		return false;
+
+	/* If the specific option is an array, return it. */
+	if ( is_array( $hybrid->settings[$option] ) )
+		return $hybrid->settings[$option];
+
+	/* Strip slashes from the setting and return. */
+	else
+		return wp_kses_stripslashes( $hybrid->settings[$option] );
+}
+
+/**
+ * Sets up a default array of theme settings for use with the theme.  Theme developers should filter the 
+ * "{$prefix}_default_theme_settings" hook to define any default theme settings.  WordPress does not 
+ * provide a hook for default settings at this time.
+ *
+ * @since 1.0.0
+ */
+function hybrid_get_default_theme_settings() {
+
+	/* Set up some default variables. */
+	$settings = array();
+	$domain = hybrid_get_textdomain();
+	$prefix = hybrid_get_prefix();
+
+	/* Get theme-supported meta boxes for the settings page. */
+	$supports = get_theme_support( 'hybrid-core-theme-settings' );
+
+	/* If the current theme supports the footer meta box and shortcodes, add default footer settings. */
+	if ( is_array( $supports[0] ) && in_array( 'footer', $supports[0] ) && current_theme_supports( 'hybrid-core-shortcodes' ) ) {
+
+		/* If there is a child theme active, add the [child-link] shortcode to the $footer_insert. */
+		if ( is_child_theme() )
+			$settings['footer_insert'] = '<p class="copyright">' . __( 'Copyright &#169; [the-year] [site-link].', $domain ) . '</p>' . "\n\n" . '<p class="credit">' . __( 'Powered by [wp-link], [theme-link], and [child-link].', $domain ) . '</p>';
+
+		/* If no child theme is active, leave out the [child-link] shortcode. */
+		else
+			$settings['footer_insert'] = '<p class="copyright">' . __( 'Copyright &#169; [the-year] [site-link].', $domain ) . '</p>' . "\n\n" . '<p class="credit">' . __( 'Powered by [wp-link] and [theme-link].', $domain ) . '</p>';
+	}
+
+	/* Return the $settings array and provide a hook for overwriting the default settings. */
+	return apply_filters( "{$prefix}_default_theme_settings", $settings );
+}
+
+?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/functions/shortcodes.php b/wp-content/themes/hybrid/library/functions/shortcodes.php
index d179a9544..561692976 100644
--- a/wp-content/themes/hybrid/library/functions/shortcodes.php
+++ b/wp-content/themes/hybrid/library/functions/shortcodes.php
@@ -1,22 +1,22 @@
 <?php
 /**
- * Shortcodes bundled for use with the theme. These shortcodes can be used in any shortcode-ready
- * area, which includes posts, pages, and various Hybrid theme areas.
+ * Shortcodes bundled for use with themes.  These shortcodes can be used in any shortcode-ready area, 
+ * which includes the post content area.  Themes may optionally make alternate shortcode-aware areas 
+ * where these shortcodes may be used.  Note that some shortcodes are specific to posts and comments 
+ * and would be useless outside of the post and comment loops.
  *
- * @package Hybrid
+ * @package HybridCore
  * @subpackage Functions
  */
 
-/**
- * Register shortcodes.
- * @since 0.8
- */
+/* Register shortcodes. */
 add_action( 'init', 'hybrid_add_shortcodes' );
 
 /**
- * Creates new shortcodes for use in any shortcode-ready area.
+ * Creates new shortcodes for use in any shortcode-ready area.  This function uses the add_shortcode() 
+ * function to register new shortcodes with WordPress.
  *
- * @since 0.8
+ * @since 0.8.0
  * @uses add_shortcode() to create new shortcodes.
  * @link http://codex.wordpress.org/Shortcode_API
  */
@@ -52,7 +52,7 @@ function hybrid_add_shortcodes() {
 /**
  * Shortcode to display the current year.
  *
- * @since 0.6
+ * @since 0.6.0
  * @uses date() Gets the current year.
  */
 function hybrid_the_year_shortcode() {
@@ -62,47 +62,48 @@ function hybrid_the_year_shortcode() {
 /**
  * Shortcode to display a link back to the site.
  *
- * @since 0.6
+ * @since 0.6.0
  * @uses get_bloginfo() Gets information about the install.
  */
 function hybrid_site_link_shortcode() {
-	return '<a class="site-link" href="' . home_url() . '" title="' . get_bloginfo( 'name' ) . '" rel="home"><span>' . get_bloginfo( 'name' ) . '</span></a>';
+	return '<a class="site-link" href="' . home_url() . '" title="' . esc_attr( get_bloginfo( 'name' ) ) . '" rel="home"><span>' . get_bloginfo( 'name' ) . '</span></a>';
 }
 
 /**
  * Shortcode to display a link to WordPress.org.
- * @since 0.6
+ *
+ * @since 0.6.0
  */
 function hybrid_wp_link_shortcode() {
-	return '<a class="wp-link" href="http://wordpress.org" title="' . __( 'Powered by WordPress, state-of-the-art semantic personal publishing platform', hybrid_get_textdomain() ) . '"><span>' . __( 'WordPress', hybrid_get_textdomain() ) . '</span></a>';
+	return '<a class="wp-link" href="http://wordpress.org" title="' . esc_attr__( 'Powered by WordPress, state-of-the-art semantic personal publishing platform', hybrid_get_textdomain() ) . '"><span>' . __( 'WordPress', hybrid_get_textdomain() ) . '</span></a>';
 }
 
 /**
  * Shortcode to display a link to the Hybrid theme page.
  *
- * @since 0.6
+ * @since 0.6.0
  * @uses get_theme_data() Gets theme (parent theme) information.
  */
 function hybrid_theme_link_shortcode() {
-	$data = get_theme_data( TEMPLATEPATH . '/style.css' );
+	$data = hybrid_get_theme_data();
 	return '<a class="theme-link" href="' . esc_url( $data['URI'] ) . '" title="' . esc_attr( $data['Name'] ) . '"><span>' . esc_attr( $data['Name'] ) . '</span></a>';
 }
 
 /**
  * Shortcode to display a link to the child theme's page.
  *
- * @since 0.6
+ * @since 0.6.0
  * @uses get_theme_data() Gets theme (child theme) information.
  */
 function hybrid_child_link_shortcode() {
-	$data = get_theme_data( STYLESHEETPATH . '/style.css' );
-	return '<a class="child-link" href="' . esc_url( $data['URI'] ) . '" title="' . esc_attr( $data['Name'] ) . '"><span>' . esc_attr( $data['Name'] ) . '</span></a>';
+	$data = hybrid_get_theme_data( 'stylesheet' );
+	return '<a class="child-link" href="' . esc_url( $data['URI'] ) . '" title="' . esc_attr( $data['Name'] ) . '"><span>' . esc_html( $data['Name'] ) . '</span></a>';
 }
 
 /**
  * Shortcode to display a login link or logout link.
  *
- * @since 0.6
+ * @since 0.6.0
  * @uses is_user_logged_in() Checks if the current user is logged into the site.
  * @uses wp_logout_url() Creates a logout URL.
  * @uses wp_login_url() Creates a login URL.
@@ -110,9 +111,9 @@ function hybrid_child_link_shortcode() {
 function hybrid_loginout_link_shortcode() {
 	$domain = hybrid_get_textdomain();
 	if ( is_user_logged_in() )
-		$out = '<a class="logout-link" href="' . wp_logout_url( esc_url( $_SERVER['HTTP_REFERER'] ) ) . '" title="' . __( 'Log out of this account', $domain ) . '">' . __( 'Log out', $domain ) . '</a>';
+		$out = '<a class="logout-link" href="' . esc_url( wp_logout_url( site_url( $_SERVER['REQUEST_URI'] ) ) ) . '" title="' . esc_attr__( 'Log out of this account', $domain ) . '">' . __( 'Log out', $domain ) . '</a>';
 	else
-		$out = '<a class="login-link" href="' . wp_login_url( esc_url( $_SERVER['HTTP_REFERER'] ) ) . '" title="' . __( 'Log into this account', $domain ) . '">' . __( 'Log in', $domain ) . '</a>';
+		$out = '<a class="login-link" href="' . esc_url( wp_login_url( site_url( $_SERVER['REQUEST_URI'] ) ) ) . '" title="' . esc_attr__( 'Log into this account', $domain ) . '">' . __( 'Log in', $domain ) . '</a>';
 
 	return $out;
 }
@@ -120,19 +121,19 @@ function hybrid_loginout_link_shortcode() {
 /**
  * Displays query count and load time if the current user can edit themes.
  *
- * @since 0.6
+ * @since 0.6.0
  * @uses current_user_can() Checks if the current user can edit themes.
  */
 function hybrid_query_counter_shortcode() {
-	if ( current_user_can( 'edit_themes' ) )
-		$out = sprintf( __( 'This page loaded in %1$s seconds with %2$s database queries.', hybrid_get_textdomain() ), timer_stop( 0, 3 ), get_num_queries() );
-	return $out;
+	if ( current_user_can( 'edit_theme_options' ) )
+		return sprintf( __( 'This page loaded in %1$s seconds with %2$s database queries.', hybrid_get_textdomain() ), timer_stop( 0, 3 ), get_num_queries() );
+	return '';
 }
 
 /**
  * Displays a nav menu that has been created from the Menus screen in the admin.
  *
- * @since 0.8
+ * @since 0.8.0
  * @uses wp_nav_menu() Displays the nav menu.
  */
 function hybrid_nav_menu_shortcode( $attr ) {
@@ -162,7 +163,7 @@ function hybrid_nav_menu_shortcode( $attr ) {
 /**
  * Displays the edit link for an individual post.
  *
- * @since 0.7
+ * @since 0.7.0
  * @param array $attr
  */
 function hybrid_entry_edit_link_shortcode( $attr ) {
@@ -171,50 +172,51 @@ function hybrid_entry_edit_link_shortcode( $attr ) {
 	$domain = hybrid_get_textdomain();
 	$post_type = get_post_type_object( $post->post_type );
 
-	if ( !current_user_can( "edit_{$post_type->capability_type}", $post->ID ) )
+	if ( !current_user_can( $post_type->cap->edit_post, $post->ID ) )
 		return '';
 
 	$attr = shortcode_atts( array( 'before' => '', 'after' => '' ), $attr );
 
-	return $attr['before'] . '<span class="edit"><a class="post-edit-link" href="' . get_edit_post_link( $post->ID ) . '" title="' . sprintf( __( 'Edit %1$s', $domain ), $post->post_type ) . '">' . __( 'Edit', $domain ) . '</a></span>' . $attr['after'];
+	return $attr['before'] . '<span class="edit"><a class="post-edit-link" href="' . esc_url( get_edit_post_link( $post->ID ) ) . '" title="' . sprintf( esc_attr__( 'Edit %1$s', $domain ), $post_type->labels->singular_name ) . '">' . __( 'Edit', $domain ) . '</a></span>' . $attr['after'];
 }
 
 /**
  * Displays the published date of an individual post.
  *
- * @since 0.7
+ * @since 0.7.0
  * @param array $attr
  */
 function hybrid_entry_published_shortcode( $attr ) {
 	$domain = hybrid_get_textdomain();
 	$attr = shortcode_atts( array( 'before' => '', 'after' => '', 'format' => get_option( 'date_format' ) ), $attr );
 
-	$published = '<abbr class="published" title="' . sprintf( get_the_time( __( 'l, F jS, Y, g:i a', $domain ) ) ) . '">' . sprintf( get_the_time( $attr['format'] ) ) . '</abbr>';
+	$published = '<abbr class="published" title="' . sprintf( get_the_time( esc_attr__( 'l, F jS, Y, g:i a', $domain ) ) ) . '">' . sprintf( get_the_time( $attr['format'] ) ) . '</abbr>';
 	return $attr['before'] . $published . $attr['after'];
 }
 
 /**
  * Displays a post's number of comments wrapped in a link to the comments area.
  *
- * @since 0.7
+ * @since 0.7.0
  * @param array $attr
  */
 function hybrid_entry_comments_link_shortcode( $attr ) {
 
 	$domain = hybrid_get_textdomain();
-	$number = get_comments_number();
-	$attr = shortcode_atts( array( 'zero' => __( 'Leave a response', $domain ), 'one' => __( '1 Response', $domain ), 'more' => __( '%1$s Responses', $domain ), 'css_class' => 'comments-link', 'none' => '', 'before' => '', 'after' => '' ), $attr );
+	$comments_link = '';
+	$number = doubleval( get_comments_number() );
+	$attr = shortcode_atts( array( 'zero' => __( 'Leave a response', $domain ), 'one' => __( '%1$s Response', $domain ), 'more' => __( '%1$s Responses', $domain ), 'css_class' => 'comments-link', 'none' => '', 'before' => '', 'after' => '' ), $attr );
 
 	if ( 0 == $number && !comments_open() && !pings_open() ) {
 		if ( $attr['none'] )
-			$comments_link = '<span class="' . esc_attr( $attr['css_class'] ) . '">' . $attr['none'] . '</span>';
+			$comments_link = '<span class="' . esc_attr( $attr['css_class'] ) . '">' . sprintf( $attr['none'], number_format_i18n( $number ) ) . '</span>';
 	}
-	elseif ( $number == 0 )
-		$comments_link = '<a class="' . esc_attr( $attr['css_class'] ) . '" href="' . get_permalink() . '#respond" title="' . sprintf( __( 'Comment on %1$s', $domain ), the_title_attribute( 'echo=0' ) ) . '">' . $attr['zero'] . '</a>';
-	elseif ( $number == 1 )
-		$comments_link = '<a class="' . esc_attr( $attr['css_class'] ) . '" href="' . get_comments_link() . '" title="' . sprintf( __( 'Comment on %1$s', $domain ), the_title_attribute( 'echo=0' ) ) . '">' . $attr['one'] . '</a>';
-	elseif ( $number > 1 )
-		$comments_link = '<a class="' . esc_attr( $attr['css_class'] ) . '" href="' . get_comments_link() . '" title="' . sprintf( __( 'Comment on %1$s', $domain ), the_title_attribute( 'echo=0' ) ) . '">' . sprintf( $attr['more'], $number ) . '</a>';
+	elseif ( 0 == $number )
+		$comments_link = '<a class="' . esc_attr( $attr['css_class'] ) . '" href="' . get_permalink() . '#respond" title="' . sprintf( esc_attr__( 'Comment on %1$s', $domain ), the_title_attribute( 'echo=0' ) ) . '">' . sprintf( $attr['zero'], number_format_i18n( $number ) ) . '</a>';
+	elseif ( 1 == $number )
+		$comments_link = '<a class="' . esc_attr( $attr['css_class'] ) . '" href="' . get_comments_link() . '" title="' . sprintf( esc_attr__( 'Comment on %1$s', $domain ), the_title_attribute( 'echo=0' ) ) . '">' . sprintf( $attr['one'], number_format_i18n( $number ) ) . '</a>';
+	elseif ( 1 < $number )
+		$comments_link = '<a class="' . esc_attr( $attr['css_class'] ) . '" href="' . get_comments_link() . '" title="' . sprintf( esc_attr__( 'Comment on %1$s', $domain ), the_title_attribute( 'echo=0' ) ) . '">' . sprintf( $attr['more'], number_format_i18n( $number ) ) . '</a>';
 
 	if ( $comments_link )
 		$comments_link = $attr['before'] . $comments_link . $attr['after'];
@@ -225,19 +227,19 @@ function hybrid_entry_comments_link_shortcode( $attr ) {
 /**
  * Displays an individual post's author with a link to his or her archive.
  *
- * @since 0.7
+ * @since 0.7.0
  * @param array $attr
  */
 function hybrid_entry_author_shortcode( $attr ) {
 	$attr = shortcode_atts( array( 'before' => '', 'after' => '' ), $attr );
-	$author = '<span class="author vcard"><a class="url fn n" href="' . get_author_posts_url( get_the_author_meta( 'ID' ) ) . '" title="' . get_the_author_meta( 'display_name' ) . '">' . get_the_author_meta( 'display_name' ) . '</a></span>';
+	$author = '<span class="author vcard"><a class="url fn n" href="' . esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ) . '" title="' . esc_attr( get_the_author_meta( 'display_name' ) ) . '">' . get_the_author_meta( 'display_name' ) . '</a></span>';
 	return $attr['before'] . $author . $attr['after'];
 }
 
 /**
  * Displays a list of terms for a specific taxonomy.
  *
- * @since 0.7
+ * @since 0.7.0
  * @param array $attr
  */
 function hybrid_entry_terms_shortcode( $attr ) {
@@ -245,8 +247,8 @@ function hybrid_entry_terms_shortcode( $attr ) {
 
 	$attr = shortcode_atts( array( 'id' => $post->ID, 'taxonomy' => 'post_tag', 'separator' => ', ', 'before' => '', 'after' => '' ), $attr );
 
-	$attr['before'] = '<span class="' . $attr['taxonomy'] . '">' . $attr['before'];
-	$attr['after'] .= '</span>';
+	$attr['before'] = ( empty( $attr['before'] ) ? '<span class="' . $attr['taxonomy'] . '">' : '<span class="' . $attr['taxonomy'] . '"><span class="before">' . $attr['before'] . '</span>' );
+	$attr['after'] = ( empty( $attr['after'] ) ? '</span>' : '<span class="after">' . $attr['after'] . '</span></span>' );
 
 	return get_the_term_list( $attr['id'], $attr['taxonomy'], $attr['before'], $attr['separator'], $attr['after'] );
 }
@@ -254,16 +256,16 @@ function hybrid_entry_terms_shortcode( $attr ) {
 /**
  * Displays a post's title with a link to the post.
  *
- * @since 0.7
+ * @since 0.7.0
  */
 function hybrid_entry_title_shortcode() {
 	global $post;
 
 	if ( is_front_page() && !is_home() )
-		$title = the_title( '<h2 class="' . $post->post_type . '-title entry-title"><a href="' . get_permalink() . '" title="' . the_title_attribute( 'echo=0' ) . '" rel="bookmark">', '</a></h2>', false );
+		$title = the_title( '<h2 class="' . esc_attr( $post->post_type ) . '-title entry-title"><a href="' . get_permalink() . '" title="' . the_title_attribute( 'echo=0' ) . '" rel="bookmark">', '</a></h2>', false );
 
 	elseif ( is_singular() )
-		$title = the_title( '<h1 class="' . $post->post_type . '-title entry-title"><a href="' . get_permalink() . '" title="' . the_title_attribute( 'echo=0' ) . '" rel="bookmark">', '</a></h1>', false );
+		$title = the_title( '<h1 class="' . esc_attr( $post->post_type ) . '-title entry-title"><a href="' . get_permalink() . '" title="' . the_title_attribute( 'echo=0' ) . '" rel="bookmark">', '</a></h1>', false );
 
 	elseif ( 'link_category' == get_query_var( 'taxonomy' ) )
 		$title = false;
@@ -271,13 +273,17 @@ function hybrid_entry_title_shortcode() {
 	else
 		$title = the_title( '<h2 class="entry-title"><a href="' . get_permalink() . '" title="' . the_title_attribute( 'echo=0' ) . '" rel="bookmark">', '</a></h2>', false );
 
+	/* If there's no post title, return a clickable '(No title)'. */
+	if ( empty( $title ) && !is_singular() && 'link_category' !== get_query_var( 'taxonomy' ) )
+		$title = '<h2 class="entry-title no-entry-title"><a href="' . get_permalink() . '" rel="bookmark">' . __( '(Untitled)', hybrid_get_textdomain() ) . '</a></h2>';
+
 	return $title;
 }
 
 /**
  * Displays the shortlinke of an individual entry.
  *
- * @since 0.8
+ * @since 0.8.0
  */
 function hybrid_entry_shortlink_shortcode( $attr ) {
 	global $post;
@@ -294,65 +300,73 @@ function hybrid_entry_shortlink_shortcode( $attr ) {
 		$attr
 	);
 
-	$shortlink = wp_get_shortlink( $post->ID );
+	$shortlink = esc_url( wp_get_shortlink( $post->ID ) );
 
-	return "{$attr['before']}<a class='shortlink' href='{$shortlink}' title='{$attr['title']}' rel='shortlink'>{$attr['text']}</a>{$attr['after']}";
+	return "{$attr['before']}<a class='shortlink' href='{$shortlink}' title='" . esc_attr( $attr['title'] ) . "' rel='shortlink'>{$attr['text']}</a>{$attr['after']}";
 }
 
 /**
  * Displays the published date and time of an individual comment.
  *
- * @since 0.7
+ * @since 0.7.0
  */
 function hybrid_comment_published_shortcode() {
 	$domain = hybrid_get_textdomain();
-	$link = '<span class="published">' . sprintf( __( '%1$s at %2$s', $domain ), '<abbr class="comment-date" title="' . get_comment_date( __( 'l, F jS, Y, g:i a', $domain ) ) . '">' . get_comment_date() . '</abbr>', '<abbr class="comment-time" title="' . get_comment_date( __( 'l, F jS, Y, g:i a', $domain ) ) . '">' . get_comment_time() . '</abbr>' ) . '</span>';
+	$link = '<span class="published">' . sprintf( __( '%1$s at %2$s', $domain ), '<abbr class="comment-date" title="' . get_comment_date( esc_attr__( 'l, F jS, Y, g:i a', $domain ) ) . '">' . get_comment_date() . '</abbr>', '<abbr class="comment-time" title="' . get_comment_date( esc_attr__( 'l, F jS, Y, g:i a', $domain ) ) . '">' . get_comment_time() . '</abbr>' ) . '</span>';
 	return $link;
 }
 
 /**
  * Displays the comment author of an individual comment.
  *
- * @since 0.8
+ * @since 0.8.0
  * @global $comment The current comment's DB object.
  * @return string
  */
 function hybrid_comment_author_shortcode( $attr ) {
 	global $comment;
 
-	$attr = shortcode_atts( array( 'before' => '', 'after' => '' ), $attr );
+	$attr = shortcode_atts(
+		array(
+			'before' => '',
+			'after' => '',
+			'tag' => 'span' // @deprecated 1.2.0 Back-compatibility. Please don't use this argument.
+		),
+		$attr
+	);
 
 	$author = esc_html( get_comment_author( $comment->comment_ID ) );
 	$url = esc_url( get_comment_author_url( $comment->comment_ID ) );
 
 	/* Display link and cite if URL is set. Also, properly cites trackbacks/pingbacks. */
 	if ( $url )
-		$output = '<cite class="fn" title="' . $url . '"><a href="' . $url . '" title="' . $author . '" class="url" rel="external nofollow">' . $author . '</a></cite>';
+		$output = '<cite class="fn" title="' . $url . '"><a href="' . $url . '" title="' . esc_attr( $author ) . '" class="url" rel="external nofollow">' . $author . '</a></cite>';
 	else
 		$output = '<cite class="fn">' . $author . '</cite>';
 
-	$output = '<div class="comment-author vcard">' . $attr['before'] . apply_filters( 'get_comment_author_link', $output ) . $attr['after'] . '</div><!-- .comment-author .vcard -->';
+	$output = '<' . tag_escape( $attr['tag'] ) . ' class="comment-author vcard">' . $attr['before'] . apply_filters( 'get_comment_author_link', $output ) . $attr['after'] . '</' . tag_escape( $attr['tag'] ) . '><!-- .comment-author .vcard -->';
 
-	/* @deprecated 0.8. Create a custom shortcode instead of filtering hybrid_comment_author. */
-	return apply_filters( "{$hybrid->prefix}_comment_author", $output );
+	return $output;
 }
 
 /**
  * Displays the permalink to an individual comment.
  *
- * @since 0.7
+ * @since 0.7.0
  */
 function hybrid_comment_permalink_shortcode( $attr ) {
+	global $comment;
+
 	$attr = shortcode_atts( array( 'before' => '', 'after' => '' ), $attr );
 	$domain = hybrid_get_textdomain();
-	$link = '<a class="permalink" href="' . get_comment_link( $comment->comment_ID ) . '" title="' . sprintf( __( 'Permalink to comment %1$s', $domain ), $comment->comment_ID ) . '">' . __( 'Permalink', $domain ) . '</a>';
+	$link = '<a class="permalink" href="' . esc_url( get_comment_link( $comment->comment_ID ) ) . '" title="' . sprintf( esc_attr__( 'Permalink to comment %1$s', $domain ), $comment->comment_ID ) . '">' . __( 'Permalink', $domain ) . '</a>';
 	return $attr['before'] . $link . $attr['after'];
 }
 
 /**
  * Displays a comment's edit link to users that have the capability to edit the comment.
  *
- * @since 0.7
+ * @since 0.7.0
  */
 function hybrid_comment_edit_link_shortcode( $attr ) {
 	global $comment;
@@ -365,7 +379,7 @@ function hybrid_comment_edit_link_shortcode( $attr ) {
 	$attr = shortcode_atts( array( 'before' => '', 'after' => '' ), $attr );
 	$domain = hybrid_get_textdomain();
 
-	$link = '<a class="comment-edit-link" href="' . $edit_link . '" title="' . sprintf( __( 'Edit %1$s', $domain ), $comment->comment_type ) . '"><span class="edit">' . __( 'Edit', $domain ) . '</span></a>';
+	$link = '<a class="comment-edit-link" href="' . esc_url( $edit_link ) . '" title="' . sprintf( esc_attr__( 'Edit %1$s', $domain ), $comment->comment_type ) . '"><span class="edit">' . __( 'Edit', $domain ) . '</span></a>';
 	$link = apply_filters( 'edit_comment_link', $link, $comment->comment_ID );
 
 	return $attr['before'] . $link . $attr['after'];
@@ -374,7 +388,7 @@ function hybrid_comment_edit_link_shortcode( $attr ) {
 /**
  * Displays a reply link for the 'comment' comment_type if threaded comments are enabled.
  *
- * @since 0.7
+ * @since 0.7.0
  */
 function hybrid_comment_reply_link_shortcode( $attr ) {
 	$domain = hybrid_get_textdomain();
@@ -385,7 +399,7 @@ function hybrid_comment_reply_link_shortcode( $attr ) {
 	$defaults = array(
 		'reply_text' => __( 'Reply', $domain ),
 		'login_text' => __( 'Log in to reply.', $domain ),
-		'depth' => $GLOBALS['comment_depth'],
+		'depth' => intval( $GLOBALS['comment_depth'] ),
 		'max_depth' => get_option( 'thread_comments_depth' ),
 		'before' => '',
 		'after' => ''
diff --git a/wp-content/themes/hybrid/library/functions/sidebars.php b/wp-content/themes/hybrid/library/functions/sidebars.php
new file mode 100644
index 000000000..2f35c3eb5
--- /dev/null
+++ b/wp-content/themes/hybrid/library/functions/sidebars.php
@@ -0,0 +1,109 @@
+<?php
+/**
+ * Sets up the default framework sidebars if the theme supports them.  By default, the framework registers 
+ * seven sidebars.  Themes may choose to use one or more of these sidebars.  A theme must register support 
+ * for 'hybrid-core-sidebars' to use them and register each sidebar ID within an array for the second 
+ * parameter of add_theme_support().
+ *
+ * @package HybridCore
+ * @subpackage Functions
+ */
+
+/* Register widget areas. */
+add_action( 'widgets_init', 'hybrid_register_sidebars' );
+
+/**
+ * Registers the default framework dynamic sidebars based on the sidebars the theme has added support 
+ * for using add_theme_support().
+ *
+ * @since 0.7.0
+ * @uses register_sidebar() Registers a sidebar with WordPress.
+ * @link http://codex.wordpress.org/Function_Reference/register_sidebar
+ */
+function hybrid_register_sidebars() {
+
+	/* Get the theme-supported sidebars. */
+	$supported_sidebars = get_theme_support( 'hybrid-core-sidebars' );
+
+	/* If the theme doesn't add support for any sidebars, return. */
+	if ( !is_array( $supported_sidebars[0] ) )
+		return;
+
+	/* Get the available core framework sidebars. */
+	$core_sidebars = hybrid_get_sidebars();
+
+	/* Loop through the supported sidebars. */
+	foreach ( $supported_sidebars[0] as $sidebar ) {
+
+		/* Make sure the given sidebar is one of the core sidebars. */
+		if ( isset( $core_sidebars[$sidebar] ) ) {
+
+			/* Set up some default sidebar arguments. */
+			$defaults = array(
+				'before_widget' => 	'<div id="%1$s" class="widget %2$s widget-%2$s"><div class="widget-wrap widget-inside">',
+				'after_widget' => 		'</div></div>',
+				'before_title' => 		'<h3 class="widget-title">',
+				'after_title' => 		'</h3>'
+			);
+
+			/* Parse the sidebar arguments and defaults. */
+			$args = wp_parse_args( $core_sidebars[$sidebar], $defaults );
+
+			/* If no 'id' was given, use the $sidebar variable and sanitize it. */
+			$args['id'] = ( isset( $args['id'] ) ? sanitize_key( $args['id'] ) : sanitize_key( $sidebar ) );
+
+			/* Register the sidebar. */
+			register_sidebar( $args );
+		}
+	}
+}
+
+/**
+ * Returns an array of the core framework's available sidebars for use in themes.  We'll just set the 
+ * ID (array keys), name, and description of each sidebar.  The other sidebar arguments will be set when the 
+ * sidebar is registered.
+ *
+ * @since 1.2.0
+ */
+function hybrid_get_sidebars() {
+
+	/* Get the theme textdomain. */
+	$domain = hybrid_get_textdomain();
+
+	/* Set up an array of sidebars. */
+	$sidebars = array(
+		'primary' => array(
+			'name' => 	_x( 'Primary', 'sidebar', $domain ),
+			'description' => 	__( 'The main (primary) widget area, most often used as a sidebar.', $domain )
+		),
+		'secondary' => array(
+			'name' =>	_x( 'Secondary', 'sidebar', $domain ),
+			'description' =>	__( 'The second most important widget area, most often used as a secondary sidebar.', $domain ),
+		),
+		'subsidiary' => array(
+			'name' => 	_x( 'Subsidiary', 'sidebar', $domain ),
+			'description' =>	__( 'A widget area loaded in the footer of the site.', $domain ),
+		),
+		'header' => array(
+			'name' =>	_x( 'Header', 'sidebar', $domain ),
+			'description' =>	__( 'Displayed within the site\'s header area.', $domain ),
+		),
+		'before-content' => array(
+			'name' =>	_x( 'Before Content', 'sidebar', $domain ),
+			'description' =>	__( 'Loaded before the page\'s main content area.', $domain ),
+		),
+		'after-content' => array(
+			'name' =>	_x( 'After Content', 'sidebar', $domain ),
+			'description' =>	__( 'Loaded after the page\'s main content area.', $domain ),
+		),
+		'after-singular' => array(
+			'name' =>	_x( 'After Singular', 'sidebar', $domain ),
+			'description' =>	__( 'Loaded on singular post (page, attachment, etc.) views before the comments area.', $domain ),
+		)
+	);
+
+	/* Return the sidebars. */
+	return $sidebars;
+}
+
+?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/functions/template-hierarchy.php b/wp-content/themes/hybrid/library/functions/template-hierarchy.php
new file mode 100644
index 000000000..bcd995699
--- /dev/null
+++ b/wp-content/themes/hybrid/library/functions/template-hierarchy.php
@@ -0,0 +1,198 @@
+<?php
+/**
+ * The framework has its own template hierarchy that can be used instead of the default WordPress 
+ * template hierarchy.  It is not much different than the default.  It was built to extend the default by 
+ * making it smarter and more flexible.  The goal is to give theme developers and end users an 
+ * easy-to-override system that doesn't involve massive amounts of conditional tags within files.
+ *
+ * @package HybridCore
+ * @subpackage Functions
+ */
+
+/* Filter the date template. */
+add_filter( 'date_template', 'hybrid_date_template' );
+
+/* Filter the author/user template. */
+add_filter( 'author_template', 'hybrid_user_template' );
+
+/* Filter the tag and category (taxonomy) templates. */
+add_filter( 'tag_template', 'hybrid_taxonomy_template' );
+add_filter( 'category_template', 'hybrid_taxonomy_template' );
+
+/* Filter the single, page, and attachment (singular) templates. */
+add_filter( 'single_template', 'hybrid_singular_template' );
+add_filter( 'page_template', 'hybrid_singular_template' );
+add_filter( 'attachment_template', 'hybrid_singular_template' );
+
+/**
+ * Overrides WP's default template for date-based archives. Better abstraction of templates than 
+ * is_date() allows by checking for the year, month, week, day, hour, and minute.
+ *
+ * @since 0.6.0
+ * @uses locate_template() Checks for template in child and parent theme.
+ * @param string $template
+ * @return string $template Full path to file.
+ */
+function hybrid_date_template( $template ) {
+	$templates = array();
+
+	/* If viewing a time-based archive. */
+	if ( is_time() ) {
+
+		/* If viewing a minutely archive. */
+		if ( get_query_var( 'minute' ) )
+			$templates[] = 'minute.php';
+
+		/* If viewing an hourly archive. */
+		elseif ( get_query_var( 'hour' ) )
+			$templates[] = 'hour.php';
+
+		/* Catchall for any time-based archive. */
+		$templates[] = 'time.php';
+	}
+
+	/* If viewing a daily archive. */
+	elseif ( is_day() )
+		$templates[] = 'day.php';
+
+	/* If viewing a weekly archive. */
+	elseif ( get_query_var( 'w' ) )
+		$templates[] = 'week.php';
+
+	/* If viewing a monthly archive. */
+	elseif ( is_month() )
+		$templates[] = 'month.php';
+
+	/* If viewing a yearly archive. */
+	elseif ( is_year() )
+		$templates[] = 'year.php';
+
+	/* Catchall template for date-based archives. */
+	$templates[] = 'date.php';
+
+	/* Fall back to the basic archive template. */
+	$templates[] = 'archive.php';
+
+	/* Return the found template. */
+	return locate_template( $templates );
+}
+
+/**
+ * Overrides WP's default template for author-based archives. Better abstraction of templates than 
+ * is_author() allows by allowing themes to specify templates for a specific author. The hierarchy is 
+ * user-$nicename.php, $user-role-$role.php, user.php, author.php, archive.php.
+ *
+ * @since 0.7.0
+ * @uses locate_template() Checks for template in child and parent theme.
+ * @param string $template
+ * @return string Full path to file.
+ */
+function hybrid_user_template( $template ) {
+	$templates = array();
+
+	/* Get the user nicename. */
+	$name = get_the_author_meta( 'user_nicename', get_query_var( 'author' ) );
+
+	/* Get the user object. */
+	$user = new WP_User( absint( get_query_var( 'author' ) ) );
+
+	/* Add the user nicename template. */
+	$templates[] = "user-{$name}.php";
+
+	/* Add role-based templates for the user. */
+	if ( is_array( $user->roles ) ) {
+		foreach ( $user->roles as $role )
+			$templates[] = "user-role-{$role}.php";
+	}
+
+	/* Add a basic user template. */
+	$templates[] = 'user.php';
+
+	/* Add backwards compatibility with the WordPress author template. */
+	$templates[] = 'author.php';
+
+	/* Fall back to the basic archive template. */
+	$templates[] = 'archive.php';
+
+	/* Return the found template. */
+	return locate_template( $templates );
+}
+
+/**
+ * Overrides WP's default template for category- and tag-based archives. This allows better 
+ * organization of taxonomy template files by making categories and post tags work the same way as 
+ * other taxonomies. The hierarchy is taxonomy-$taxonomy-$term.php, taxonomy-$taxonomy.php, 
+ * taxonomy.php, archive.php.
+ *
+ * @since 0.7.0
+ * @uses locate_template() Checks for template in child and parent theme.
+ * @param string $template
+ * @return string Full path to file.
+ */
+function hybrid_taxonomy_template( $template ) {
+
+	/* Get the queried term object. */
+	$term = get_queried_object();
+
+	/* Return the available templates. */
+	return locate_template( array( "taxonomy-{$term->taxonomy}-{$term->slug}.php", "taxonomy-{$term->taxonomy}.php", 'taxonomy.php', 'archive.php' ) );
+}
+
+/**
+ * Overrides the default single (singular post) template.  Post templates can be loaded using a custom 
+ * post template, by slug, or by ID.
+ *
+ * Attachment templates are handled slightly differently. Rather than look for the slug
+ * or ID, templates can be loaded by attachment-$mime[0]_$mime[1].php, 
+ * attachment-$mime[1].php, or attachment-$mime[0].php.
+ *
+ * @since 0.7.0
+ * @param string $template The default WordPress post template.
+ * @return string $template The theme post template after all templates have been checked for.
+ */
+function hybrid_singular_template( $template ) {
+
+	$templates = array();
+
+	/* Get the queried post. */
+	$post = get_queried_object();
+
+	/* Check for a custom post template by custom field key '_wp_post_template'. */
+	$custom = get_post_meta( get_queried_object_id(), "_wp_{$post->post_type}_template", true );
+	if ( $custom )
+		$templates[] = $custom;
+
+	/* If viewing an attachment page, handle the files by mime type. */
+	if ( is_attachment() ) {
+		/* Split the mime_type into two distinct parts. */
+		$type = explode( '/', get_post_mime_type() );
+
+		$templates[] = "attachment-{$type[0]}_{$type[1]}.php";
+		$templates[] = "attachment-{$type[1]}.php";
+		$templates[] = "attachment-{$type[0]}.php";
+	}
+
+	/* If viewing any other type of singular page. */
+	else {
+
+		/* Add a post name (slug) template. */
+		$templates[] = "{$post->post_type}-{$post->post_name}.php";
+
+		/* Add a post ID template. */
+		$templates[] = "{$post->post_type}-{$post->ID}.php";
+	}
+
+	/* Add a template based off the post type name. */
+	$templates[] = "{$post->post_type}.php";
+
+	/* Allow for WP's more recent 'single-{$post_type}.php' for compatibility. */
+	$templates[] = "single-{$post->post_type}.php";
+
+	/* Add a general template of singular.php. */
+	$templates[] = "singular.php";
+
+	/* Return the found template. */
+	return locate_template( $templates );
+}
+
+?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/functions/utility.php b/wp-content/themes/hybrid/library/functions/utility.php
new file mode 100644
index 000000000..c8895c1a2
--- /dev/null
+++ b/wp-content/themes/hybrid/library/functions/utility.php
@@ -0,0 +1,184 @@
+<?php
+/**
+ * Additional helper functions that the framework or themes may use.  The functions in this file are functions
+ * that don't really have a home within any other parts of the framework.
+ *
+ * @package HybridCore
+ * @subpackage Functions
+ */
+
+/* Add extra support for post types. */
+add_action( 'init', 'hybrid_add_post_type_support' );
+
+/* Add extra file headers for themes. */
+add_filter( 'extra_theme_headers', 'hybrid_extra_theme_headers' );
+
+/**
+ * This function is for adding extra support for features not default to the core post types.
+ * Excerpts are added to the 'page' post type.  Comments and trackbacks are added for the
+ * 'attachment' post type.  Technically, these are already used for attachments in core, but 
+ * they're not registered.
+ *
+ * @since 0.8.0
+ */
+function hybrid_add_post_type_support() {
+
+	/* Add support for excerpts and entry-views to the 'page' post type. */
+	add_post_type_support( 'page', array( 'excerpt' ) );
+
+	/* Add support for comments, trackbacks, and entry-views to the 'attachment' post type. */
+	add_post_type_support( 'attachment', array( 'trackbacks' ) );
+}
+
+/**
+ * Creates custom theme headers.  This is the information shown in the header block of a theme's 'style.css' 
+ * file.  Themes are not required to use this information, but the framework does make use of the data for 
+ * displaying additional information to the theme user.
+ *
+ * @since 1.2.0
+ * @link http://codex.wordpress.org/Theme_Review#Licensing
+ * @param array $headers Array of extra headers added by plugins/themes.
+ * @return array $headers
+ */
+function hybrid_extra_theme_headers( $headers ) {
+
+	/* Add support for 'Template Version'. This is for use in child themes to note the version of the parent theme. */
+	if ( !in_array( 'Template Version', $headers ) )
+		$headers[] = 'Template Version';
+
+	/* Add support for 'License'.  Proposed in the guidelines for the WordPress.org theme review. */
+	if ( !in_array( 'License', $headers ) )
+		$headers[] = 'License';
+
+	/* Add support for 'License URI'. Proposed in the guidelines for the WordPress.org theme review. */
+	if ( !in_array( 'License URI', $headers ) )
+		$headers[] = 'License URI';
+
+	/* Add support for 'Support URI'.  This should be a link to the theme's support forums. */
+	if ( !in_array( 'Support URI', $headers ) )
+		$headers[] = 'Support URI';
+
+	/* Add support for 'Documentation URI'.  This should be a link to the theme's documentation. */
+	if ( !in_array( 'Documentation URI', $headers ) )
+		$headers[] = 'Documentation URI';
+
+	/* Return the array of custom theme headers. */
+	return $headers;
+}
+
+/**
+ * Looks for a template based on the hybrid_get_context() function.  If the $template parameter
+ * is a directory, it will look for files within that directory.  Otherwise, $template becomes the 
+ * template name prefix.  The function looks for templates based on the context of the current page
+ * being viewed by the user.
+ *
+ * @since 0.8.0
+ * @param string $template The slug of the template whose context we're searching for.
+ * @return string $template The full path of the located template.
+ */
+function get_atomic_template( $template ) {
+
+	$templates = array();
+
+	$theme_dir = trailingslashit( THEME_DIR ) . $template;
+	$child_dir = trailingslashit( CHILD_THEME_DIR ) . $template;
+
+	if ( is_dir( $child_dir ) || is_dir( $theme_dir ) ) {
+		$dir = true;
+		$templates[] = "{$template}/index.php";
+	}
+	else {
+		$dir = false;
+		$templates[] = "{$template}.php";
+	}
+
+	foreach ( hybrid_get_context() as $context )
+		$templates[] = ( ( $dir ) ? "{$template}/{$context}.php" : "{$template}-{$context}.php" );
+
+	return locate_template( array_reverse( $templates ), true );
+}
+
+/**
+ * Generates the relevant template info.  Adds template meta with theme version.  Uses the theme 
+ * name and version from style.css.  In 0.6, added the hybrid_meta_template 
+ * filter hook.
+ *
+ * @since 0.4.0
+ */
+function hybrid_meta_template() {
+	$data = hybrid_get_theme_data();
+	$template = '<meta name="template" content="' . esc_attr( "{$data['Title']} {$data['Version']}" ) . '" />' . "\n";
+	echo apply_atomic( 'meta_template', $template );
+}
+
+/**
+ * Dynamic element to wrap the site title in.  If it is the front page, wrap it in an <h1> element.  One other 
+ * pages, wrap it in a <div> element. 
+ *
+ * @since 0.1.0
+ */
+function hybrid_site_title() {
+
+	/* If viewing the front page of the site, use an <h1> tag.  Otherwise, use a <div> tag. */
+	$tag = ( is_front_page() ) ? 'h1' : 'div';
+
+	/* Get the site title.  If it's not empty, wrap it with the appropriate HTML. */
+	if ( $title = get_bloginfo( 'name' ) )
+		$title = '<' . $tag . ' id="site-title"><a href="' . home_url() . '" title="' . esc_attr( $title ) . '" rel="home"><span>' . $title . '</span></a></' . $tag . '>';
+
+	/* Display the site title and apply filters for developers to overwrite. */
+	echo apply_atomic( 'site_title', $title );
+}
+
+/**
+ * Dynamic element to wrap the site description in.  If it is the front page, wrap it in an <h2> element.  
+ * On other pages, wrap it in a <div> element.
+ *
+ * @since 0.1.0
+ */
+function hybrid_site_description() {
+
+	/* If viewing the front page of the site, use an <h2> tag.  Otherwise, use a <div> tag. */
+	$tag = ( is_front_page() ) ? 'h2' : 'div';
+
+	/* Get the site description.  If it's not empty, wrap it with the appropriate HTML. */
+	if ( $desc = get_bloginfo( 'description' ) )
+		$desc = "\n\t\t\t" . '<' . $tag . ' id="site-description"><span>' . $desc . '</span></' . $tag . '>' . "\n";
+
+	/* Display the site description and apply filters for developers to overwrite. */
+	echo apply_atomic( 'site_description', $desc );
+}
+
+/**
+ * Checks if a post of any post type has a custom template.  This is the equivalent of WordPress' 
+ * is_page_template() function with the exception that it works for all post types.
+ *
+ * @since 1.2.0
+ * @param string $template The name of the template to check for.
+ * @return bool Whether the post has a template.
+ */
+function hybrid_has_post_template( $template = '' ) {
+
+	/* Assume we're viewing a singular post. */
+	if ( is_singular() ) {
+
+		/* Get the queried object. */
+		$post = get_queried_object();
+
+		/* Get the post template, which is saved as metadata. */
+		$post_template = get_post_meta( get_queried_object_id(), "_wp_{$post->post_type}_template", true );
+
+		/* If a specific template was input, check that the post template matches. */
+		if ( !empty( $template) && ( $template == $post_template ) )
+			return true;
+
+		/* If no specific template was input, check if the post has a template. */
+		elseif ( empty( $template) && !empty( $post_template ) )
+			return true;
+	}
+
+	/* Return false for everything else. */
+	return false;
+}
+
+?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/functions/widgets.php b/wp-content/themes/hybrid/library/functions/widgets.php
index f162d9fc9..25bb497ad 100644
--- a/wp-content/themes/hybrid/library/functions/widgets.php
+++ b/wp-content/themes/hybrid/library/functions/widgets.php
@@ -1,112 +1,96 @@
 <?php
 /**
- * Functions for dealing with widgets and sidebars within the theme. WP widgets must be 
- * unregistered. Hybrid widgets must be registered in their place. All sidebars are loaded 
- * and registered with WP.
+ * Sets up the core framework's widgets and unregisters some of the default WordPress widgets if the 
+ * theme supports this feature.  The framework's widgets are meant to extend the default WordPress
+ * widgets by giving users highly-customizable widget settings.  A theme must register support for the 
+ * 'hybrid-core-widgets' feature to use the framework widgets.
  *
- * @package Hybrid
+ * @package HybridCore
  * @subpackage Functions
  */
 
-/**
- * Add theme support for widgets.
- * @since 0.8
- */
-add_theme_support( 'widgets' );
-
-/**
- * Register widget areas
- * @since 0.7
- */
-add_action( 'init', 'hybrid_register_sidebars' );
-
-/**
- * Unregister WP widgets
- * @since 0.3.2
- */
+/* Unregister WP widgets. */
 add_action( 'widgets_init', 'hybrid_unregister_widgets' );
 
-/**
- * Register Hybrid Widgets
- * @since 0.6
- */
+/* Register Hybrid widgets. */
 add_action( 'widgets_init', 'hybrid_register_widgets' );
 
 /**
- * Disables widget areas
- * @since 0.5
- */
-add_filter( 'sidebars_widgets', 'remove_sidebars' );
-
-/**
- * Registers each widget area for the theme. This includes all of the asides
- * and the utility widget areas throughout the theme.
- *
- * @since 0.7
- * @uses register_sidebar() Registers a widget area.
- */
-function hybrid_register_sidebars() {
-	$domain = hybrid_get_textdomain();
-
-	/* Register aside widget areas. */
-	register_sidebar( array( 'name' => __( 'Primary', $domain ), 'id' => 'primary', 'description' => __( 'The main (primary) widget area, most often used as a sidebar.', $domain ), 'before_widget' => '<div id="%1$s" class="widget %2$s widget-%2$s"><div class="widget-inside">', 'after_widget' => '</div></div>', 'before_title' => '<h3 class="widget-title">', 'after_title' => '</h3>' ) );
-	register_sidebar( array( 'name' => __( 'Secondary', $domain ), 'id' => 'secondary', 'description' => __( 'The second most important widget area, most often used as a secondary sidebar', $domain ), 'before_widget' => '<div id="%1$s" class="widget %2$s widget-%2$s"><div class="widget-inside">', 'after_widget' => '</div></div>', 'before_title' => '<h3 class="widget-title">', 'after_title' => '</h3>' ) );
-	register_sidebar( array( 'name' => __( 'Subsidiary', $domain ), 'id' => 'subsidiary', 'description' => __( 'A widget area loaded in the footer of the site.', $domain ), 'before_widget' => '<div id="%1$s" class="widget %2$s widget-%2$s"><div class="widget-inside">', 'after_widget' => '</div></div>', 'before_title' => '<h3 class="widget-title">', 'after_title' => '</h3>' ) );
-
-	/* Register utility widget areas. */
-	register_sidebar( array( 'name' => __( 'Utility: Before Content', $domain ), 'id' => 'utility-before-content', 'description' => __( 'Loaded before the page\'s main content area.', $domain ), 'before_widget' => '<div id="%1$s" class="widget %2$s widget-%2$s"><div class="widget-inside">', 'after_widget' => '</div></div>', 'before_title' => '<h3 class="widget-title">', 'after_title' => '</h3>' ) );
-	register_sidebar( array( 'name' => __( 'Utility: After Content', $domain ), 'id' => 'utility-after-content', 'description' => __( 'Loaded after the page\'s main content area.', $domain ), 'before_widget' => '<div id="%1$s" class="widget %2$s widget-%2$s"><div class="widget-inside">', 'after_widget' => '</div></div>', 'before_title' => '<h3 class="widget-title">', 'after_title' => '</h3>' ) );
-	register_sidebar( array( 'name' => __( 'Utility: After Singular', $domain ), 'id' => 'utility-after-singular', 'description' => __( 'Loaded on singular post (page, attachment, etc.) views before the comments area.', $domain ), 'before_widget' => '<div id="%1$s" class="widget %2$s widget-%2$s"><div class="widget-inside">', 'after_widget' => '</div></div>', 'before_title' => '<h3 class="widget-title">', 'after_title' => '</h3>' ) );
-
-	/* Register template widget areas only if the templates are available. */
-	if ( locate_template( array( 'page-widgets.php' ) ) )
-		register_sidebar( array( 'name' => __( 'Widgets Template', $domain ), 'id' => 'utility-widgets-template', 'description' => __( 'Used as the content of the Widgets page template.', $domain ), 'before_widget' => '<div id="%1$s" class="widget %2$s widget-%2$s"><div class="widget-inside">', 'after_widget' => '</div></div>', 'before_title' => '<h3 class="widget-title">', 'after_title' => '</h3>' ) );
-	if ( locate_template( array( '404.php' ) ) )
-		register_sidebar( array( 'name' => __( '404 Template', $domain ), 'id' => 'utility-404', 'description' => __( 'Replaces the default 404 error page content.', $domain ), 'before_widget' => '<div id="%1$s" class="widget %2$s widget-%2$s"><div class="widget-inside">', 'after_widget' => '</div></div>', 'before_title' => '<h3 class="widget-title">', 'after_title' => '</h3>' ) );
-}
-
-/**
- * Register Hybrid's extra widgets. Each widget is meant to replace or extend the 
- * current default WordPress widgets.
+ * Registers the core frameworks widgets.  These widgets typically overwrite the equivalent default WordPress
+ * widget by extending the available options of the widget.
  *
- * @since 0.6
- * @uses register_widget() Registers individual widgets.
- * @link http://codex.wordpress.org/WordPress_Widgets_Api
+ * @since 0.6.0
+ * @uses register_widget() Registers individual widgets with WordPress
+ * @link http://codex.wordpress.org/Function_Reference/register_widget
  */
 function hybrid_register_widgets() {
 
-	/* Load each widget file. */
-	require_once( THEME_CLASSES . '/widget-archives.php' );
-	require_once( THEME_CLASSES . '/widget-authors.php' );
-	require_once( THEME_CLASSES . '/widget-bookmarks.php' );
-	require_once( THEME_CLASSES . '/widget-calendar.php' );
-	require_once( THEME_CLASSES . '/widget-categories.php' );
-	require_once( THEME_CLASSES . '/widget-nav-menu.php' );
-	require_once( THEME_CLASSES . '/widget-pages.php' );
-	require_once( THEME_CLASSES . '/widget-search.php' );
-	require_once( THEME_CLASSES . '/widget-tags.php' );
-
-	/* Register each widget. */
+	/* Load the archives widget class. */
+	require_once( trailingslashit( HYBRID_CLASSES ) . 'widget-archives.php' );
+
+	/* Load the authors widget class. */
+	require_once( trailingslashit( HYBRID_CLASSES ) . 'widget-authors.php' );
+
+	/* Load the bookmarks widget class. */
+	require_once( trailingslashit( HYBRID_CLASSES ) . 'widget-bookmarks.php' );
+
+	/* Load the calendar widget class. */
+	require_once( trailingslashit( HYBRID_CLASSES ) . 'widget-calendar.php' );
+
+	/* Load the categories widget class. */
+	require_once( trailingslashit( HYBRID_CLASSES ) . 'widget-categories.php' );
+
+	/* Load the nav menu widget class. */
+	require_once( trailingslashit( HYBRID_CLASSES ) . 'widget-nav-menu.php' );
+
+	/* Load the pages widget class. */
+	require_once( trailingslashit( HYBRID_CLASSES ) . 'widget-pages.php' );
+
+	/* Load the search widget class. */
+	require_once( trailingslashit( HYBRID_CLASSES ) . 'widget-search.php' );
+
+	/* Load the tags widget class. */
+	require_once( trailingslashit( HYBRID_CLASSES ) . 'widget-tags.php' );
+
+	/* Register the archives widget. */
 	register_widget( 'Hybrid_Widget_Archives' );
+
+	/* Register the authors widget. */
 	register_widget( 'Hybrid_Widget_Authors' );
+
+	/* Register the bookmarks widget. */
 	register_widget( 'Hybrid_Widget_Bookmarks' );
+
+	/* Register the calendar widget. */
 	register_widget( 'Hybrid_Widget_Calendar' );
+
+	/* Register the categories widget. */
 	register_widget( 'Hybrid_Widget_Categories' );
+
+	/* Register the nav menu widget. */
 	register_widget( 'Hybrid_Widget_Nav_Menu' );
+
+	/* Register the pages widget. */
 	register_widget( 'Hybrid_Widget_Pages' );
+
+	/* Register the search widget. */
 	register_widget( 'Hybrid_Widget_Search' );
+
+	/* Register the tags widget. */
 	register_widget( 'Hybrid_Widget_Tags' );
 }
 
 /**
- * Unregister default WordPress widgets we don't need. The theme adds its own 
- * versions of these widgets.
+ * Unregister default WordPress widgets that are replaced by the framework's widgets.  Widgets that
+ * aren't replaced by the framework widgets are not unregistered.
  *
  * @since 0.3.2
- * @uses unregister_widget() Removes individual widgets.
- * @link http://codex.wordpress.org/WordPress_Widgets_Api
+ * @uses unregister_widget() Unregisters a registered widget.
+ * @link http://codex.wordpress.org/Function_Reference/unregister_widget
  */
 function hybrid_unregister_widgets() {
+
+	/* Unregister the default WordPress widgets. */
 	unregister_widget( 'WP_Widget_Archives' );
 	unregister_widget( 'WP_Widget_Calendar' );
 	unregister_widget( 'WP_Widget_Categories' );
@@ -118,86 +102,4 @@ function hybrid_unregister_widgets() {
 	unregister_widget( 'WP_Widget_Tag_Cloud' );
 }
 
-/**
- * Loads the Primary widget area. Users can overwrite 'sidebar-primary.php'.
- *
- * @since 0.2.2
- * @uses get_sidebar() Checks for the template in the child and parent theme.
- */
-function hybrid_get_primary() {
-	get_sidebar( 'primary' );
-}
-
-/**
- * Loads the Secondary widget area. Users can overwrite 'sidebar-secondary.php'.
- *
- * @since 0.2.2
- * @uses get_sidebar() Checks for the template in the child and parent theme.
- */
-function hybrid_get_secondary() {
-	get_sidebar( 'secondary' );
-}
-
-/**
- * Loads the Subsidiary widget area. Users can overwrite 'sidebar-subsidiary.php'.
- *
- * @since 0.3.1
- * @uses get_sidebar() Checks for the template in the child and parent theme.
- */
-function hybrid_get_subsidiary() {
-	get_sidebar( 'subsidiary' );
-}
-
-/**
- * Loads the Utility: Before Content widget area. Users can overwrite 
- * 'sidebar-before-content.php' in child themes.
- *
- * @since 0.4
- * @uses get_sidebar() Checks for the template in the child and parent theme.
- */
-function hybrid_get_utility_before_content() {
-	get_sidebar( 'before-content' );
-}
-
-/**
- * Loads the Utility: After Content widget area. Users can overwrite 
- * 'sidebar-after-content.php' in child themes.
- *
- * @since 0.4
- * @uses get_sidebar() Checks for the template in the child and parent theme.
- */
-function hybrid_get_utility_after_content() {
-	get_sidebar( 'after-content' );
-}
-
-/**
- * Loads the Utility: After Singular widget area. Users can overwrite 
- * 'sidebar-after-singular.php' in child themes.
- *
- * @since 0.7
- * @uses get_sidebar() Checks for the template in the child and parent theme.
- */
-function hybrid_get_utility_after_singular() {
-	get_sidebar( 'after-singular' );
-}
-
-/**
- * Removes all widget areas on the No Widgets page template. We're only going to run 
- * it on the No Widgets template. Users that need additional templates without widgets 
- * should create a simliar function in their child theme.
- *
- * @since 0.5
- * @uses sidebars_widgets Filter to remove all widget areas
- */
-function remove_sidebars( $sidebars_widgets ) {
-	global $wp_query;
-
-	if ( is_singular() ) {
-		$template = get_post_meta( $wp_query->post->ID, "_wp_{$wp_query->post->post_type}_template", true );
-		if ( 'no-widgets.php' == $template || "{$wp_query->post->post_type}-no-widgets.php" == $template )
-			$sidebars_widgets = array( false );
-	}
-	return $sidebars_widgets;
-}
-
 ?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/hybrid.php b/wp-content/themes/hybrid/library/hybrid.php
new file mode 100644
index 000000000..28e297ddc
--- /dev/null
+++ b/wp-content/themes/hybrid/library/hybrid.php
@@ -0,0 +1,305 @@
+<?php
+/**
+ * Hybrid Core - A WordPress theme development framework.
+ *
+ * Hybrid Core is a framework for developing WordPress themes.  The framework allows theme developers
+ * to quickly build themes without having to handle all of the "logic" behind the theme or having to code 
+ * complex functionality for features that are often needed in themes.  The framework does these things 
+ * for developers to allow them to get back to what matters the most:  developing and designing themes.  
+ * The framework was built to make it easy for developers to include (or not include) specific, pre-coded 
+ * features.  Themes handle all the markup, style, and scripts while the framework handles the logic.
+ *
+ * Hybrid Core is a modular system, which means that developers can pick and choose the features they 
+ * want to include within their themes.  Most files are only loaded if the theme registers support for the 
+ * feature using the add_theme_support( $feature ) function within their theme.
+ *
+ * This program is free software; you can redistribute it and/or modify it under the terms of the GNU 
+ * General Public License version 2, as published by the Free Software Foundation.  You may NOT assume 
+ * that you can use any other version of the GPL.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without 
+ * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * You should have received a copy of the GNU General Public License along with this program; if not, write 
+ * to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * @package HybridCore
+ * @version 1.2.1
+ * @author Justin Tadlock <justin@justintadlock.com>
+ * @copyright Copyright (c) 2008 - 2011, Justin Tadlock
+ * @link http://themehybrid.com/hybrid-core
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ */
+
+/**
+ * The Hybrid class launches the framework.  It's the organizational structure behind the entire framework. 
+ * This class should be loaded and initialized before anything else within the theme is called to properly use 
+ * the framework.  
+ *
+ * After parent themes call the Hybrid class, they should perform a theme setup function on the 
+ * 'after_setup_theme' hook with a priority of 10.  Child themes should add their theme setup function on
+ * the 'after_setup_theme' hook with a priority of 11.  This allows the class to load theme-supported features
+ * at the appropriate time, which is on the 'after_setup_theme' hook with a priority of 12.
+ *
+ * @since 0.7.0
+ */
+class Hybrid {
+
+	/**
+	 * Constructor method for the Hybrid class.  This method adds other methods of the class to 
+	 * specific hooks within WordPress.  It controls the load order of the required files for running 
+	 * the framework.
+	 *
+	 * @since 1.0.0
+	 */
+	function __construct() {
+
+		/* Define framework, parent theme, and child theme constants. */
+		add_action( 'after_setup_theme', array( &$this, 'constants' ), 1 );
+
+		/* Load the core functions required by the rest of the framework. */
+		add_action( 'after_setup_theme', array( &$this, 'core' ), 2 );
+
+		/* Initialize the framework's default actions and filters. */
+		add_action( 'after_setup_theme', array( &$this, 'default_filters' ), 3 );
+
+		/* Language functions and translations setup. */
+		add_action( 'after_setup_theme', array( &$this, 'i18n' ), 4 );
+
+		/* Load the framework functions. */
+		add_action( 'after_setup_theme', array( &$this, 'functions' ), 12 );
+
+		/* Load the framework extensions. */
+		add_action( 'after_setup_theme', array( &$this, 'extensions' ), 13 );
+
+		/* Load admin files. */
+		add_action( 'wp_loaded', array( &$this, 'admin' ) );
+	}
+
+	/**
+	 * Defines the constant paths for use within the core framework, parent theme, and child theme.  
+	 * Constants prefixed with 'HYBRID_' are for use only within the core framework and don't 
+	 * reference other areas of the parent or child theme.
+	 *
+	 * @since 0.7.0
+	 */
+	function constants() {
+
+		/* Sets the framework version number. */
+		define( 'HYBRID_VERSION', '1.2.1' );
+
+		/* Sets the path to the parent theme directory. */
+		define( 'THEME_DIR', get_template_directory() );
+
+		/* Sets the path to the parent theme directory URI. */
+		define( 'THEME_URI', get_template_directory_uri() );
+
+		/* Sets the path to the child theme directory. */
+		define( 'CHILD_THEME_DIR', get_stylesheet_directory() );
+
+		/* Sets the path to the child theme directory URI. */
+		define( 'CHILD_THEME_URI', get_stylesheet_directory_uri() );
+
+		/* Sets the path to the core framework directory. */
+		define( 'HYBRID_DIR', trailingslashit( THEME_DIR ) . basename( dirname( __FILE__ ) ) );
+
+		/* Sets the path to the core framework directory URI. */
+		define( 'HYBRID_URI', trailingslashit( THEME_URI ) . basename( dirname( __FILE__ ) ) );
+
+		/* Sets the path to the core framework admin directory. */
+		define( 'HYBRID_ADMIN', trailingslashit( HYBRID_DIR ) . 'admin' );
+
+		/* Sets the path to the core framework classes directory. */
+		define( 'HYBRID_CLASSES', trailingslashit( HYBRID_DIR ) . 'classes' );
+
+		/* Sets the path to the core framework extensions directory. */
+		define( 'HYBRID_EXTENSIONS', trailingslashit( HYBRID_DIR ) . 'extensions' );
+
+		/* Sets the path to the core framework functions directory. */
+		define( 'HYBRID_FUNCTIONS', trailingslashit( HYBRID_DIR ) . 'functions' );
+
+		/* Sets the path to the core framework images directory URI. */
+		define( 'HYBRID_IMAGES', trailingslashit( HYBRID_URI ) . 'images' );
+
+		/* Sets the path to the core framework CSS directory URI. */
+		define( 'HYBRID_CSS', trailingslashit( HYBRID_URI ) . 'css' );
+
+		/* Sets the path to the core framework JavaScript directory URI. */
+		define( 'HYBRID_JS', trailingslashit( HYBRID_URI ) . 'js' );
+	}
+
+	/**
+	 * Loads the core framework functions.  These files are needed before loading anything else in the 
+	 * framework because they have required functions for use.
+	 *
+	 * @since 1.0.0
+	 */
+	function core() {
+
+		/* Load the core framework functions. */
+		require_once( trailingslashit( HYBRID_FUNCTIONS ) . 'core.php' );
+
+		/* Load the context-based functions. */
+		require_once( trailingslashit( HYBRID_FUNCTIONS ) . 'context.php' );
+	}
+
+	/**
+	 * Loads both the parent and child theme translation files.  If a locale-based functions file exists
+	 * in either the parent or child theme (child overrides parent), it will also be loaded.  All translation 
+	 * and locale functions files are expected to be within the theme's '/languages' folder, but the 
+	 * framework will fall back on the theme root folder if necessary.  Translation files are expected 
+	 * to be prefixed with the template or stylesheet path (example: 'templatename-en_US.mo').
+	 *
+	 * @since 1.2.0
+	 */
+	function i18n() {
+
+		/* Load theme textdomain. */
+		load_theme_textdomain( hybrid_get_textdomain() );
+
+		/* Load child theme textdomain. */
+		if ( is_child_theme() )
+			load_child_theme_textdomain( hybrid_get_child_textdomain() );
+
+		/* Get the user's locale. */
+		$locale = get_locale();
+
+		/* Locate a locale-specific functions file. */
+		$locale_functions = locate_template( array( "languages/{$locale}.php", "{$locale}.php" ) );
+
+		/* If the locale file exists and is readable, load it. */
+		if ( !empty( $locale_functions ) && is_readable( $locale_functions ) )
+			require_once( $locale_functions );
+	}
+
+	/**
+	 * Loads the framework functions.  Many of these functions are needed to properly run the 
+	 * framework.  Some components are only loaded if the theme supports them.
+	 *
+	 * @since 0.7.0
+	 */
+	function functions() {
+
+		/* Load the comments functions. */
+		require_once( trailingslashit( HYBRID_FUNCTIONS ) . 'comments.php' );
+
+		/* Load media-related functions. */
+		require_once( trailingslashit( HYBRID_FUNCTIONS ) . 'media.php' );
+
+		/* Load the utility functions. */
+		require_once( trailingslashit( HYBRID_FUNCTIONS ) . 'utility.php' );
+
+		/* Load the theme settings functions if supported. */
+		require_if_theme_supports( 'hybrid-core-theme-settings', trailingslashit( HYBRID_FUNCTIONS ) . 'settings.php' );
+
+		/* Load the menus functions if supported. */
+		require_if_theme_supports( 'hybrid-core-menus', trailingslashit( HYBRID_FUNCTIONS ) . 'menus.php' );
+
+		/* Load the core SEO component. */
+		require_if_theme_supports( 'hybrid-core-seo', trailingslashit( HYBRID_FUNCTIONS ) . 'core-seo.php' );
+
+		/* Load the shortcodes if supported. */
+		require_if_theme_supports( 'hybrid-core-shortcodes', trailingslashit( HYBRID_FUNCTIONS ) . 'shortcodes.php' );
+
+		/* Load the sidebars if supported. */
+		require_if_theme_supports( 'hybrid-core-sidebars', trailingslashit( HYBRID_FUNCTIONS ) . 'sidebars.php' );
+
+		/* Load the widgets if supported. */
+		require_if_theme_supports( 'hybrid-core-widgets', trailingslashit( HYBRID_FUNCTIONS ) . 'widgets.php' );
+
+		/* Load the template hierarchy if supported. */
+		require_if_theme_supports( 'hybrid-core-template-hierarchy', trailingslashit( HYBRID_FUNCTIONS ) . 'template-hierarchy.php' );
+
+		/* Load the deprecated functions if supported. */
+		require_if_theme_supports( 'hybrid-core-deprecated', trailingslashit( HYBRID_FUNCTIONS ) . 'deprecated.php' );
+	}
+
+	/**
+	 * Load extensions (external projects).  Extensions are projects that are included within the 
+	 * framework but are not a part of it.  They are external projects developed outside of the 
+	 * framework.  Themes must use add_theme_support( $extension ) to use a specific extension 
+	 * within the theme.  This should be declared on 'after_setup_theme' no later than a priority of 11.
+	 *
+	 * @since 0.7.0
+	 */
+	function extensions() {
+
+		/* Load the Breadcrumb Trail extension if supported and the plugin isn't active. */
+		if ( !function_exists( 'breadcrumb_trail' ) )
+			require_if_theme_supports( 'breadcrumb-trail', trailingslashit( HYBRID_EXTENSIONS ) . 'breadcrumb-trail.php' );
+
+		/* Load the Cleaner Gallery extension if supported and the plugin isn't active. */
+		if ( !function_exists( 'cleaner_gallery' ) )
+			require_if_theme_supports( 'cleaner-gallery', trailingslashit( HYBRID_EXTENSIONS ) . 'cleaner-gallery.php' );
+
+		/* Load the Get the Image extension if supported and the plugin isn't active. */
+		if ( !function_exists( 'get_the_image' ) )
+			require_if_theme_supports( 'get-the-image', trailingslashit( HYBRID_EXTENSIONS ) . 'get-the-image.php' );
+
+		/* Load the Cleaner Caption extension if supported. */
+		require_if_theme_supports( 'cleaner-caption', trailingslashit( HYBRID_EXTENSIONS ) . 'cleaner-caption.php' );
+
+		/* Load the Custom Field Series extension if supported. */
+		require_if_theme_supports( 'custom-field-series', trailingslashit( HYBRID_EXTENSIONS ) . 'custom-field-series.php' );
+
+		/* Load the Loop Pagination extension if supported. */
+		require_if_theme_supports( 'loop-pagination', trailingslashit( HYBRID_EXTENSIONS ) . 'loop-pagination.php' );
+
+		/* Load the Entry Views extension if supported. */
+		require_if_theme_supports( 'entry-views', trailingslashit( HYBRID_EXTENSIONS ) . 'entry-views.php' );
+
+		/* Load the Theme Layouts extension if supported. */
+		require_if_theme_supports( 'theme-layouts', trailingslashit( HYBRID_EXTENSIONS ) . 'theme-layouts.php' );
+
+		/* Load the Post Stylesheets extension if supported. */
+		require_if_theme_supports( 'post-stylesheets', trailingslashit( HYBRID_EXTENSIONS ) . 'post-stylesheets.php' );
+	}
+
+	/**
+	 * Load admin files for the framework.
+	 *
+	 * @since 0.7.0
+	 */
+	function admin() {
+
+		/* Check if in the WordPress admin. */
+		if ( is_admin() ) {
+
+			/* Load the main admin file. */
+			require_once( trailingslashit( HYBRID_ADMIN ) . 'admin.php' );
+
+			/* Load the theme settings feature if supported. */
+			require_if_theme_supports( 'hybrid-core-theme-settings', trailingslashit( HYBRID_ADMIN ) . 'theme-settings.php' );
+		}
+	}
+
+	/**
+	 * Adds the default framework actions and filters.
+	 *
+	 * @since 1.0.0
+	 */
+	function default_filters() {
+
+		/* Move the WordPress generator to a better priority. */
+		remove_action( 'wp_head', 'wp_generator' );
+		add_action( 'wp_head', 'wp_generator', 1 );
+
+		/* Add the theme info to the header (lets theme developers give better support). */
+		add_action( 'wp_head', 'hybrid_meta_template', 1 );
+
+		/* Filter the textdomain mofile to allow child themes to load the parent theme translation. */
+		add_filter( 'load_textdomain_mofile', 'hybrid_load_textdomain', 10, 2 );
+
+		/* Filter textdomain for extensions. */
+		add_filter( 'breadcrumb_trail_textdomain', 'hybrid_get_textdomain' );
+		add_filter( 'theme_layouts_textdomain', 'hybrid_get_textdomain' );
+		add_filter( 'custom_field_series_textdomain', 'hybrid_get_textdomain' );
+		add_filter( 'post_stylesheets_textdomain', 'hybrid_get_textdomain' );
+
+		/* Make text widgets and term descriptions shortcode aware. */
+		add_filter( 'widget_text', 'do_shortcode' );
+		add_filter( 'term_description', 'do_shortcode' );
+	}
+}
+
+?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/js/drop-downs.dev.js b/wp-content/themes/hybrid/library/js/drop-downs.dev.js
new file mode 100644
index 000000000..a0adb5422
--- /dev/null
+++ b/wp-content/themes/hybrid/library/js/drop-downs.dev.js
@@ -0,0 +1,236 @@
+/*
+ * Superfish v1.4.8 - jQuery menu widget
+ * Copyright (c) 2008 Joel Birch
+ *
+ * Dual licensed under the MIT and GPL licenses:
+ * 	http://www.opensource.org/licenses/mit-license.php
+ * 	http://www.gnu.org/licenses/gpl.html
+ *
+ * CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt
+ */
+
+;(function($){
+	$.fn.superfish = function(op){
+
+		var sf = $.fn.superfish,
+			c = sf.c,
+			$arrow = $(['<span class="',c.arrowClass,'"> &#187;</span>'].join('')),
+			over = function(){
+				var $$ = $(this), menu = getMenu($$);
+				clearTimeout(menu.sfTimer);
+				$$.showSuperfishUl().siblings().hideSuperfishUl();
+			},
+			out = function(){
+				var $$ = $(this), menu = getMenu($$), o = sf.op;
+				clearTimeout(menu.sfTimer);
+				menu.sfTimer=setTimeout(function(){
+					o.retainPath=($.inArray($$[0],o.$path)>-1);
+					$$.hideSuperfishUl();
+					if (o.$path.length && $$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path);}
+				},o.delay);	
+			},
+			getMenu = function($menu){
+				var menu = $menu.parents(['ul.',c.menuClass,':first'].join(''))[0];
+				sf.op = sf.o[menu.serial];
+				return menu;
+			},
+			addArrow = function($a){ $a.addClass(c.anchorClass).append($arrow.clone()); };
+			
+		return this.each(function() {
+			var s = this.serial = sf.o.length;
+			var o = $.extend({},sf.defaults,op);
+			o.$path = $('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){
+				$(this).addClass([o.hoverClass,c.bcClass].join(' '))
+					.filter('li:has(ul)').removeClass(o.pathClass);
+			});
+			sf.o[s] = sf.op = o;
+			
+			$('li:has(ul)',this)[($.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'](over,out).each(function() {
+				if (o.autoArrows) addArrow( $('>a:first-child',this) );
+			})
+			.not('.'+c.bcClass)
+				.hideSuperfishUl();
+			
+			var $a = $('a',this);
+			$a.each(function(i){
+				var $li = $a.eq(i).parents('li');
+				$a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);});
+			});
+			o.onInit.call(this);
+			
+		}).each(function() {
+			var menuClasses = [c.menuClass];
+			if (sf.op.dropShadows  && !($.browser.msie && $.browser.version < 7)) menuClasses.push(c.shadowClass);
+			$(this).addClass(menuClasses.join(' '));
+		});
+	};
+
+	var sf = $.fn.superfish;
+	sf.o = [];
+	sf.op = {};
+	sf.IE7fix = function(){
+		var o = sf.op;
+		if ($.browser.msie && $.browser.version > 6 && o.dropShadows && o.animation.opacity!=undefined)
+			this.toggleClass(sf.c.shadowClass+'-off');
+		};
+	sf.c = {
+		bcClass     : 'sf-breadcrumb',
+		menuClass   : 'sf-js-enabled',
+		anchorClass : 'sf-with-ul',
+		arrowClass  : 'sf-sub-indicator',
+		shadowClass : 'sf-shadow'
+	};
+	sf.defaults = {
+		hoverClass	: 'sfHover',
+		pathClass	: 'overideThisToUse',
+		pathLevels	: 1,
+		delay		: 800,
+		animation	: {opacity:'show'},
+		speed		: 'normal',
+		autoArrows	: true,
+		dropShadows : true,
+		disableHI	: false,		// true disables hoverIntent detection
+		onInit		: function(){}, // callback functions
+		onBeforeShow: function(){},
+		onShow		: function(){},
+		onHide		: function(){}
+	};
+	$.fn.extend({
+		hideSuperfishUl : function(){
+			var o = sf.op,
+				not = (o.retainPath===true) ? o.$path : '';
+			o.retainPath = false;
+			var $ul = $(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass)
+					.find('>ul').hide().css('visibility','hidden');
+			o.onHide.call($ul);
+			return this;
+		},
+		showSuperfishUl : function(){
+			var o = sf.op,
+				sh = sf.c.shadowClass+'-off',
+				$ul = this.addClass(o.hoverClass)
+					.find('>ul:hidden').css('visibility','visible');
+			sf.IE7fix.call($ul);
+			o.onBeforeShow.call($ul);
+			$ul.animate(o.animation,o.speed,function(){ sf.IE7fix.call($ul); o.onShow.call($ul); });
+			return this;
+		}
+	});
+
+})(jQuery);
+
+/*
+ * Supersubs v0.2b - jQuery plugin
+ * Copyright (c) 2008 Joel Birch
+ *
+ * Dual licensed under the MIT and GPL licenses:
+ * 	http://www.opensource.org/licenses/mit-license.php
+ * 	http://www.gnu.org/licenses/gpl.html
+ *
+ *
+ * This plugin automatically adjusts submenu widths of suckerfish-style menus to that of
+ * their longest list item children. If you use this, please expect bugs and report them
+ * to the jQuery Google Group with the word 'Superfish' in the subject line.
+ *
+ */
+
+;(function($){ // $ will refer to jQuery within this closure
+
+	$.fn.supersubs = function(options){
+		var opts = $.extend({}, $.fn.supersubs.defaults, options);
+		// return original object to support chaining
+		return this.each(function() {
+			// cache selections
+			var $$ = $(this);
+			// support metadata
+			var o = $.meta ? $.extend({}, opts, $$.data()) : opts;
+			// get the font size of menu.
+			// .css('fontSize') returns various results cross-browser, so measure an em dash instead
+			var fontsize = $('<li id="menu-fontsize">&#8212;</li>').css({
+				'padding' : 0,
+				'position' : 'absolute',
+				'top' : '-999em',
+				'width' : 'auto'
+			}).appendTo($$).width(); //clientWidth is faster, but was incorrect here
+			// remove em dash
+			$('#menu-fontsize').remove();
+			// cache all ul elements
+			$ULs = $$.find('ul');
+			// loop through each ul in menu
+			$ULs.each(function(i) {	
+				// cache this ul
+				var $ul = $ULs.eq(i);
+				// get all (li) children of this ul
+				var $LIs = $ul.children();
+				// get all anchor grand-children
+				var $As = $LIs.children('a');
+				// force content to one line and save current float property
+				var liFloat = $LIs.css('white-space','nowrap').css('float');
+				// remove width restrictions and floats so elements remain vertically stacked
+				var emWidth = $ul.add($LIs).add($As).css({
+					'float' : 'none',
+					'width'	: 'auto'
+				})
+				// this ul will now be shrink-wrapped to longest li due to position:absolute
+				// so save its width as ems. Clientwidth is 2 times faster than .width() - thanks Dan Switzer
+				.end().end()[0].clientWidth / fontsize;
+				// add more width to ensure lines don't turn over at certain sizes in various browsers
+				emWidth += o.extraWidth;
+				// restrict to at least minWidth and at most maxWidth
+				if (emWidth > o.maxWidth)		{ emWidth = o.maxWidth; }
+				else if (emWidth < o.minWidth)	{ emWidth = o.minWidth; }
+				emWidth += 'em';
+				// set ul to width in ems
+				$ul.css('width',emWidth);
+				// restore li floats to avoid IE bugs
+				// set li width to full width of this ul
+				// revert white-space to normal
+				$LIs.css({
+					'float' : liFloat,
+					'width' : '100%',
+					'white-space' : 'normal'
+				})
+				// update offset position of descendant ul to reflect new width of parent
+				.each(function(){
+					var $childUl = $('>ul',this);
+					var offsetDirection = $childUl.css('left')!==undefined ? 'left' : 'right';
+					$childUl.css(offsetDirection,emWidth);
+				});
+			});
+			
+		});
+	};
+	// expose defaults
+	$.fn.supersubs.defaults = {
+		minWidth		: 9,		// requires em unit.
+		maxWidth		: 25,		// requires em unit.
+		extraWidth		: 0			// extra width can ensure lines don't sometimes turn over due to slight browser differences in how they round-off values
+	};
+	
+})(jQuery); // plugin code ends
+
+/**
+ * Hybrid drop-downs.
+ * @author Justin Tadlock
+ * @license http://www.gnu.org/licenses/gpl.html
+ * @copyright 2008 - 2011 Justin Tadlock
+ */
+$j = jQuery.noConflict();
+
+$j(document).ready(
+	function() {
+
+		/* Drop-down controls. */
+		$j('div.menu ul:first-child').supersubs( {
+			minWidth: 12,
+			maxWidth: 27,
+			extraWidth: 1
+			}
+		).superfish( {
+			delay: 100,
+			animation: { opacity: 'show', height: 'show' },
+			dropShadows: false
+			}
+		);
+	}
+);
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/js/drop-downs.js b/wp-content/themes/hybrid/library/js/drop-downs.js
index ba10ba228..a2d10d609 100644
--- a/wp-content/themes/hybrid/library/js/drop-downs.js
+++ b/wp-content/themes/hybrid/library/js/drop-downs.js
@@ -1,77 +1 @@
-/**
- * Superfish v1.4.8 - jQuery menu widget
- * Copyright (c) 2008 Joel Birch
- *
- * Dual licensed under the MIT and GPL licenses:
- * 	http://www.opensource.org/licenses/mit-license.php
- * 	http://www.gnu.org/licenses/gpl.html
- *
- * CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt
- */
-;(function($){$.fn.superfish=function(op){var sf=$.fn.superfish,c=sf.c,$arrow=$(['<span class="',c.arrowClass,'"> &#187;</span>'].join('')),over=function(){var $$=$(this),menu=getMenu($$);clearTimeout(menu.sfTimer);$$.showSuperfishUl().siblings().hideSuperfishUl()},out=function(){var $$=$(this),menu=getMenu($$),o=sf.op;clearTimeout(menu.sfTimer);menu.sfTimer=setTimeout(function(){o.retainPath=($.inArray($$[0],o.$path)>-1);$$.hideSuperfishUl();if(o.$path.length&&$$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path)}},o.delay)},getMenu=function($menu){var menu=$menu.parents(['ul.',c.menuClass,':first'].join(''))[0];sf.op=sf.o[menu.serial];return menu},addArrow=function($a){$a.addClass(c.anchorClass).append($arrow.clone())};return this.each(function(){var s=this.serial=sf.o.length;var o=$.extend({},sf.defaults,op);o.$path=$('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){$(this).addClass([o.hoverClass,c.bcClass].join(' ')).filter('li:has(ul)').removeClass(o.pathClass)});sf.o[s]=sf.op=o;$('li:has(ul)',this)[($.fn.hoverIntent&&!o.disableHI)?'hoverIntent':'hover'](over,out).each(function(){if(o.autoArrows)addArrow($('>a:first-child',this))}).not('.'+c.bcClass).hideSuperfishUl();var $a=$('a',this);$a.each(function(i){var $li=$a.eq(i).parents('li');$a.eq(i).focus(function(){over.call($li)}).blur(function(){out.call($li)})});o.onInit.call(this)}).each(function(){var menuClasses=[c.menuClass];if(sf.op.dropShadows&&!($.browser.msie&&$.browser.version<7))menuClasses.push(c.shadowClass);$(this).addClass(menuClasses.join(' '))})};var sf=$.fn.superfish;sf.o=[];sf.op={};sf.IE7fix=function(){var o=sf.op;if($.browser.msie&&$.browser.version>6&&o.dropShadows&&o.animation.opacity!=undefined)this.toggleClass(sf.c.shadowClass+'-off')};sf.c={bcClass:'sf-breadcrumb',menuClass:'sf-js-enabled',anchorClass:'sf-with-ul',arrowClass:'sf-sub-indicator',shadowClass:'sf-shadow'};sf.defaults={hoverClass:'sfHover',pathClass:'overideThisToUse',pathLevels:1,delay:800,animation:{opacity:'show'},speed:'normal',autoArrows:true,dropShadows:true,disableHI:false,onInit:function(){},onBeforeShow:function(){},onShow:function(){},onHide:function(){}};$.fn.extend({hideSuperfishUl:function(){var o=sf.op,not=(o.retainPath===true)?o.$path:'';o.retainPath=false;var $ul=$(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass).find('>ul').hide().css('visibility','hidden');o.onHide.call($ul);return this},showSuperfishUl:function(){var o=sf.op,sh=sf.c.shadowClass+'-off',$ul=this.addClass(o.hoverClass).find('>ul:hidden').css('visibility','visible');sf.IE7fix.call($ul);o.onBeforeShow.call($ul);$ul.animate(o.animation,o.speed,function(){sf.IE7fix.call($ul);o.onShow.call($ul)});return this}})})(jQuery);
-
-/**
- * Supersubs v0.2b - jQuery plugin
- * Copyright (c) 2008 Joel Birch
- *
- * Dual licensed under the MIT and GPL licenses:
- * 	http://www.opensource.org/licenses/mit-license.php
- * 	http://www.gnu.org/licenses/gpl.html
- *
- *
- * This plugin automatically adjusts submenu widths of suckerfish-style menus to that of
- * their longest list item children. If you use this, please expect bugs and report them
- * to the jQuery Google Group with the word 'Superfish' in the subject line.
- *
- */
-;(function($){$.fn.supersubs=function(options){var opts=$.extend({},$.fn.supersubs.defaults,options);return this.each(function(){var $$=$(this);var o=$.meta?$.extend({},opts,$$.data()):opts;var fontsize=$('<li id="menu-fontsize">&#8212;</li>').css({'padding':0,'position':'absolute','top':'-999em','width':'auto'}).appendTo($$).width();$('#menu-fontsize').remove();$ULs=$$.find('ul');$ULs.each(function(i){var $ul=$ULs.eq(i);var $LIs=$ul.children();var $As=$LIs.children('a');var liFloat=$LIs.css('white-space','nowrap').css('float');var emWidth=$ul.add($LIs).add($As).css({'float':'none','width':'auto'}).end().end()[0].clientWidth/fontsize;emWidth+=o.extraWidth;if(emWidth>o.maxWidth){emWidth=o.maxWidth}else if(emWidth<o.minWidth){emWidth=o.minWidth}emWidth+='em';$ul.css('width',emWidth);$LIs.css({'float':liFloat,'width':'100%','white-space':'normal'}).each(function(){var $childUl=$('>ul',this);var offsetDirection=$childUl.css('left')!==undefined?'left':'right';$childUl.css(offsetDirection,emWidth)})})})};$.fn.supersubs.defaults={minWidth:9,maxWidth:25,extraWidth:0}})(jQuery);
-
-/**
- * Hybrid drop-downs.
- * @author Justin Tadlock
- * @license http://www.gnu.org/licenses/gpl.html
- * @copyright 2008 - 2010 Justin Tadlock
- */
-$j = jQuery.noConflict();
-
-$j(document).ready(
-	function() {
-
-		/* Drop-down controls. */
-		$j('div.menu ul:first-child').supersubs( {
-			minWidth: 12,
-			maxWidth: 27,
-			extraWidth: 1
-			}
-		).superfish( {
-			delay: 100,
-			animation: { opacity: 'show', height: 'show' },
-			dropShadows: false
-			}
-		);
-
-		/* @deprecated 0.8 Page and cat nav drop-downs. */
-		$j('#page-nav ul.menu').supersubs( {
-			minWidth: 12,
-			maxWidth: 27,
-			extraWidth: 1
-			}
-		).superfish( {
-			delay: 100,
-			animation: { opacity: 'show', height: 'show' },
-			dropShadows: false
-			}
-		);
-		$j('#cat-nav ul.menu').supersubs( {
-			minWidth: 12,
-			maxWidth: 27,
-			extraWidth: 1
-			}
-		).superfish( {
-			delay: 100,
-			animation: { opacity: 'show', height: 'show' },
-			dropShadows: false
-			}
-		);
-	}
-);
\ No newline at end of file
+(function($){$.fn.superfish=function(op){var sf=$.fn.superfish,c=sf.c,$arrow=$(['<span class="',c.arrowClass,'"> &#187;</span>'].join("")),over=function(){var $$=$(this),menu=getMenu($$);clearTimeout(menu.sfTimer);$$.showSuperfishUl().siblings().hideSuperfishUl();},out=function(){var $$=$(this),menu=getMenu($$),o=sf.op;clearTimeout(menu.sfTimer);menu.sfTimer=setTimeout(function(){o.retainPath=($.inArray($$[0],o.$path)>-1);$$.hideSuperfishUl();if(o.$path.length&&$$.parents(["li.",o.hoverClass].join("")).length<1){over.call(o.$path);}},o.delay);},getMenu=function($menu){var menu=$menu.parents(["ul.",c.menuClass,":first"].join(""))[0];sf.op=sf.o[menu.serial];return menu;},addArrow=function($a){$a.addClass(c.anchorClass).append($arrow.clone());};return this.each(function(){var s=this.serial=sf.o.length;var o=$.extend({},sf.defaults,op);o.$path=$("li."+o.pathClass,this).slice(0,o.pathLevels).each(function(){$(this).addClass([o.hoverClass,c.bcClass].join(" ")).filter("li:has(ul)").removeClass(o.pathClass);});sf.o[s]=sf.op=o;$("li:has(ul)",this)[($.fn.hoverIntent&&!o.disableHI)?"hoverIntent":"hover"](over,out).each(function(){if(o.autoArrows){addArrow($(">a:first-child",this));}}).not("."+c.bcClass).hideSuperfishUl();var $a=$("a",this);$a.each(function(i){var $li=$a.eq(i).parents("li");$a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);});});o.onInit.call(this);}).each(function(){var menuClasses=[c.menuClass];if(sf.op.dropShadows&&!($.browser.msie&&$.browser.version<7)){menuClasses.push(c.shadowClass);}$(this).addClass(menuClasses.join(" "));});};var sf=$.fn.superfish;sf.o=[];sf.op={};sf.IE7fix=function(){var o=sf.op;if($.browser.msie&&$.browser.version>6&&o.dropShadows&&o.animation.opacity!=undefined){this.toggleClass(sf.c.shadowClass+"-off");}};sf.c={bcClass:"sf-breadcrumb",menuClass:"sf-js-enabled",anchorClass:"sf-with-ul",arrowClass:"sf-sub-indicator",shadowClass:"sf-shadow"};sf.defaults={hoverClass:"sfHover",pathClass:"overideThisToUse",pathLevels:1,delay:800,animation:{opacity:"show"},speed:"normal",autoArrows:true,dropShadows:true,disableHI:false,onInit:function(){},onBeforeShow:function(){},onShow:function(){},onHide:function(){}};$.fn.extend({hideSuperfishUl:function(){var o=sf.op,not=(o.retainPath===true)?o.$path:"";o.retainPath=false;var $ul=$(["li.",o.hoverClass].join(""),this).add(this).not(not).removeClass(o.hoverClass).find(">ul").hide().css("visibility","hidden");o.onHide.call($ul);return this;},showSuperfishUl:function(){var o=sf.op,sh=sf.c.shadowClass+"-off",$ul=this.addClass(o.hoverClass).find(">ul:hidden").css("visibility","visible");sf.IE7fix.call($ul);o.onBeforeShow.call($ul);$ul.animate(o.animation,o.speed,function(){sf.IE7fix.call($ul);o.onShow.call($ul);});return this;}});})(jQuery);(function($){$.fn.supersubs=function(options){var opts=$.extend({},$.fn.supersubs.defaults,options);return this.each(function(){var $$=$(this);var o=$.meta?$.extend({},opts,$$.data()):opts;var fontsize=$('<li id="menu-fontsize">&#8212;</li>').css({padding:0,position:"absolute",top:"-999em",width:"auto"}).appendTo($$).width();$("#menu-fontsize").remove();$ULs=$$.find("ul");$ULs.each(function(i){var $ul=$ULs.eq(i);var $LIs=$ul.children();var $As=$LIs.children("a");var liFloat=$LIs.css("white-space","nowrap").css("float");var emWidth=$ul.add($LIs).add($As).css({"float":"none",width:"auto"}).end().end()[0].clientWidth/fontsize;emWidth+=o.extraWidth;if(emWidth>o.maxWidth){emWidth=o.maxWidth;}else{if(emWidth<o.minWidth){emWidth=o.minWidth;}}emWidth+="em";$ul.css("width",emWidth);$LIs.css({"float":liFloat,width:"100%","white-space":"normal"}).each(function(){var $childUl=$(">ul",this);var offsetDirection=$childUl.css("left")!==undefined?"left":"right";$childUl.css(offsetDirection,emWidth);});});});};$.fn.supersubs.defaults={minWidth:9,maxWidth:25,extraWidth:0};})(jQuery);$j=jQuery.noConflict();$j(document).ready(function(){$j("div.menu ul:first-child").supersubs({minWidth:12,maxWidth:27,extraWidth:1}).superfish({delay:100,animation:{opacity:"show",height:"show"},dropShadows:false});});
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/library/license.txt b/wp-content/themes/hybrid/library/license.txt
new file mode 100644
index 000000000..63e41a44c
--- /dev/null
+++ b/wp-content/themes/hybrid/library/license.txt
@@ -0,0 +1,339 @@
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/loop-error.php b/wp-content/themes/hybrid/loop-error.php
new file mode 100644
index 000000000..9e98f63e6
--- /dev/null
+++ b/wp-content/themes/hybrid/loop-error.php
@@ -0,0 +1,21 @@
+<?php
+/**
+ * Loop Error Template
+ *
+ * Displays an error message when no posts are found.
+ *
+ * @package Hybrid
+ * @subpackage Template
+ */
+?>
+	<div id="post-0" class="<?php hybrid_entry_class(); ?>">
+
+		<div class="entry-content">
+
+			<p class="no-data">
+				<?php _e( 'Apologies, but no results were found.', hybrid_get_textdomain() ); ?>
+			</p><!-- .no-data -->
+
+		</div><!-- .entry-content -->
+
+	</div><!-- .hentry .error -->
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/loop-meta.php b/wp-content/themes/hybrid/loop-meta.php
new file mode 100644
index 000000000..42e778cdb
--- /dev/null
+++ b/wp-content/themes/hybrid/loop-meta.php
@@ -0,0 +1,130 @@
+<?php
+/**
+ * Loop Meta Template
+ *
+ * Displays information at the top of the page about archive and search results when viewing those pages.  
+ * This is not shown on the home page and singular views.
+ *
+ * @package Hybrid
+ * @subpackage Template
+ */
+?>
+
+	<?php if ( is_home() && !is_front_page() ) : ?>
+
+		<?php global $wp_query; ?>
+
+		<div class="loop-meta">
+			<h1 class="loop-title"><?php echo get_post_field( 'post_title', $wp_query->get_queried_object_id() ); ?></h1>
+		</div><!-- .loop-meta -->
+
+	<?php elseif ( is_category() ) : ?>
+
+		<div class="loop-meta archive-info category-info">
+
+			<h1 class="loop-title archive-title category-title"><?php single_cat_title(); ?></h1>
+
+			<div class="loop-description archive-description category-description">
+				<?php echo category_description(); ?>
+			</div><!-- .loop-description -->
+
+		</div><!-- .loop-meta -->
+
+	<?php elseif ( is_tag() ) : ?>
+
+		<div class="loop-meta archive-info post_tag-info tag-info">
+
+			<h1 class="loop-title archive-title post_tag-title tag-title"><?php single_tag_title(); ?></h1>
+
+			<div class="loop-description archive-description post_tag-description tag-description">
+				<?php echo tag_description(); ?>
+			</div><!-- .loop-description -->
+
+		</div><!-- .loop-meta -->
+
+	<?php elseif ( is_tax() ) : ?>
+
+		<div class="loop-meta archive-info taxonomy-info">
+
+			<h1 class="loop-title archive-title taxonomy-title"><?php single_term_title(); ?></h1>
+
+			<div class="loop-description archive-description taxonomy-description">
+				<?php echo term_description( '', get_query_var( 'taxonomy' ) ); ?>
+			</div><!-- .loop-description -->
+
+		</div><!-- .loop-meta -->
+
+	<?php elseif ( is_author() ) : ?>
+
+		<?php $id = get_query_var( 'author' ); ?>
+
+		<div id="hcard-<?php the_author_meta( 'user_nicename', $id ); ?>" class="loop-meta vcard archive-info user-info user-profile author-info author-profile">
+
+			<h1 class="loop-title fn n archive-title user-title author-title"><?php the_author_meta( 'display_name', $id ); ?></h1>
+
+			<div class="loop-description archive-description user-description author-description">
+				<?php echo get_avatar( get_the_author_meta( 'user_email', $id ), '100', '', get_the_author_meta( 'display_name', $id ) ); ?>
+
+				<p class="user-bio author-bio">
+					<?php the_author_meta( 'description', $id ); ?>
+				</p><!-- .user-bio -->
+			</div><!-- .loop-description -->
+
+		</div><!-- .loop-meta -->
+
+	<?php elseif ( is_search() ) : ?>
+
+		<div class="loop-meta search-info">
+
+			<h1 class="loop-title search-title"><?php echo esc_attr( get_search_query() ); ?></h1>
+
+			<div class="loop-description search-description">
+				<p>
+				<?php printf( __( 'You are browsing the search results for &quot;%1$s&quot;', hybrid_get_textdomain() ), esc_attr( get_search_query() ) ); ?>
+				</p>
+			</div><!-- .loop-description -->
+
+		</div><!-- .loop-meta -->
+
+	<?php elseif ( is_date() ) : ?>
+
+		<div class="loop-meta archive-info date-info">
+			<h1 class="loop-title archive-title date-title"><?php _e( 'Archives by date', hybrid_get_textdomain() ); ?></h1>
+
+			<div class="loop-description archive-description date-description">
+				<p>
+				<?php _e( 'You are browsing the site archives by date.', hybrid_get_textdomain() ); ?>
+				</p>
+			</div><!-- .loop-description -->
+
+		</div><!-- .loop-meta -->
+
+	<?php elseif ( is_post_type_archive() ) : ?>
+
+		<?php $post_type = get_post_type_object( get_query_var( 'post_type' ) ); ?>
+
+		<div class="loop-meta archive-info">
+
+			<h1 class="loop-title archive-title"><?php post_type_archive_title(); ?></h1>
+
+			<div class="loop-description archive-description">
+				<?php if ( !empty( $post_type->description ) ) echo "<p>{$post_type->description}</p>"; ?>
+			</div><!-- .loop-description -->
+
+		</div><!-- .loop-meta -->
+
+	<?php elseif ( is_archive() ) : ?>
+
+		<div class="loop-meta archive-info">
+
+			<h1 class="loop-title archive-title"><?php _e( 'Archives', hybrid_get_textdomain() ); ?></h1>
+
+			<div class="loop-description archive-description">
+				<p>
+				<?php _e( 'You are browsing the site archives.', hybrid_get_textdomain() ); ?>
+				</p>
+			</div><!-- .loop-description -->
+
+		</div><!-- .loop-meta -->
+
+	<?php endif; ?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/loop-nav.php b/wp-content/themes/hybrid/loop-nav.php
new file mode 100644
index 000000000..d3c0b439f
--- /dev/null
+++ b/wp-content/themes/hybrid/loop-nav.php
@@ -0,0 +1,37 @@
+<?php
+/**
+ * Navigation Links Template
+ *
+ * This template is used to show your your next/previous post links on singular pages and
+ * the next/previous posts links on the home/posts page and archive pages. It also integrates
+ * with the WP PageNavi plugin if activated.
+ *
+ * @package Hybrid
+ * @subpackage Template
+ */
+?>
+
+	<?php if ( is_attachment() ) : ?>
+
+		<div class="navigation-links">
+			<?php previous_post_link( '%link', '<span class="previous">' . __( '&laquo; Return to entry', hybrid_get_textdomain() ) . '</span>' ); ?>
+		</div>
+
+	<?php elseif ( is_singular( 'post' ) ) : ?>
+
+		<div class="navigation-links">
+			<?php previous_post_link( '%link', '<span class="previous">' . __( '&laquo; Previous', hybrid_get_textdomain() ) . '</span>' ); ?>
+			<?php next_post_link( '%link', '<span class="next">' . __( 'Next &raquo;', hybrid_get_textdomain() ) . '</span>' ); ?>
+		</div><!-- .navigation-links -->
+
+	<?php elseif ( !is_singular() && function_exists( 'wp_pagenavi' ) ) : wp_pagenavi(); ?>
+
+	<?php elseif ( !is_singular() && current_theme_supports( 'loop-pagination' ) ) : loop_pagination(); ?>
+
+	<?php elseif ( !is_singular() && $nav = get_posts_nav_link( array( 'sep' => '', 'prelabel' => '<span class="previous">' . __( '&laquo; Previous', hybrid_get_textdomain() ) . '</span>', 'nxtlabel' => '<span class="next">' . __( 'Next &raquo;', hybrid_get_textdomain() ) . '</span>' ) ) ) : ?>
+
+		<div class="navigation-links">
+			<?php echo $nav; ?>
+		</div><!-- .navigation-links -->
+
+	<?php endif; ?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/menu-primary.php b/wp-content/themes/hybrid/menu-primary.php
index e974de23f..5ba42aa6a 100644
--- a/wp-content/themes/hybrid/menu-primary.php
+++ b/wp-content/themes/hybrid/menu-primary.php
@@ -3,21 +3,21 @@
  * Primary Menu Template
  *
  * Displays the Primary Menu if it has active menu items.
- * @link http://themehybrid.com/themes/hybrid/menus
  *
  * @package Hybrid
  * @subpackage Template
+ * @link http://themehybrid.com/themes/hybrid/menus
  */
 
-if ( has_nav_menu( 'primary-menu' ) ) : ?>
+if ( has_nav_menu( 'primary' ) ) : ?>
 
 	<div id="primary-menu" class="menu-container">
 
-		<?php hybrid_before_primary_menu(); // Before primary menu hook ?>
+		<?php do_atomic( 'before_primary_menu' ); // hybrid_before_primary_menu ?>
 
-		<?php wp_nav_menu( array( 'theme_location' => 'primary-menu', 'container_class' => 'menu', 'menu_class' => '', 'fallback_cb' => '' ) ); ?>
+		<?php wp_nav_menu( array( 'theme_location' => 'primary', 'container_class' => 'menu', 'menu_class' => '', 'fallback_cb' => '' ) ); ?>
 
-		<?php hybrid_after_primary_menu(); // After primary menu hook ?>
+		<?php do_atomic( 'after_primary_menu' ); // hybrid_after_primary_menu ?>
 
 	</div><!-- #primary-menu .menu-container -->
 
diff --git a/wp-content/themes/hybrid/page-archives.php b/wp-content/themes/hybrid/page-archives.php
index f9fd2cc50..24e8932f3 100644
--- a/wp-content/themes/hybrid/page-archives.php
+++ b/wp-content/themes/hybrid/page-archives.php
@@ -2,37 +2,31 @@
 /**
  * Template Name: Archives
  *
- * This will list your categories and monthly archives by default.
- * @link http://themehybrid.com/themes/hybrid/page-templates/archives
- *
- * Alternately, you can activate an archives plugin.
- * @link http://justinblanton.com/projects/smartarchives
- * @link http://wordpress.org/extend/plugins/clean-archives-reloaded
- * @link http://www.geekwithlaptop.com/projects/clean-archives
+ * This will list your categories and monthly archives by default.  Alternatively, you can activate 
+ * an archives plugin.
  *
  * @package Hybrid
  * @subpackage Template
+ * @deprecated 0.9.0 Template will be renamed page-template-archives.php to comply with theme repo guidelines.
  */
 
-get_header(); ?>
+get_header(); // Loads the header.php template. ?>
 
 	<div id="content" class="hfeed content">
 
-		<?php hybrid_before_content(); // Before content hook ?>
+		<?php do_atomic( 'before_content' ); // hybrid_before_content ?>
 
 		<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
 
 			<div id="post-<?php the_ID(); ?>" class="<?php hybrid_entry_class(); ?>">
 
-				<?php hybrid_before_entry(); // Before entry hook ?>
+				<?php do_atomic( 'before_entry' ); // hybrid_before_entry ?>
 
 				<div class="entry-content">
 
 					<?php the_content(); ?>
 
-					<?php if ( function_exists( 'clean_my_archives' ) ) : echo clean_my_archives(); ?>
-
-					<?php elseif ( function_exists( 'smartArchives' ) ) : smartArchives( 'both', '' ); ?>
+					<?php if ( function_exists( 'smartArchives' ) ) : smartArchives( 'both', '' ); ?>
 
 					<?php elseif ( function_exists( 'wp_smart_archives' ) ) : wp_smart_archives(); ?>
 
@@ -40,13 +34,13 @@ get_header(); ?>
 
 					<?php else : ?>
 
-						<h2><?php _e( 'Archives by category', 'hybrid' ); ?></h2>
+						<h2><?php _e( 'Archives by category', hybrid_get_textdomain() ); ?></h2>
 
 						<ul class="xoxo category-archives">
-							<?php wp_list_categories( array( 'feed' => __( 'RSS', 'hybrid' ), 'show_count' => true, 'use_desc_for_title' => false, 'title_li' => false ) ); ?>
+							<?php wp_list_categories( array( 'feed' => __( 'RSS', hybrid_get_textdomain() ), 'show_count' => true, 'use_desc_for_title' => false, 'title_li' => false ) ); ?>
 						</ul><!-- .xoxo .category-archives -->
 
-						<h2><?php _e( 'Archives by month', 'hybrid' ); ?></h2>
+						<h2><?php _e( 'Archives by month', hybrid_get_textdomain() ); ?></h2>
 
 						<ul class="xoxo monthly-archives">
 							<?php wp_get_archives( array( 'show_post_count' => true, 'type' => 'monthly' ) ); ?>
@@ -54,30 +48,28 @@ get_header(); ?>
 
 					<?php endif; ?>
 
-					<?php wp_link_pages( array( 'before' => '<p class="page-links pages">' . __( 'Pages:', 'hybrid' ), 'after' => '</p>' ) ); ?>
+					<?php wp_link_pages( array( 'before' => '<p class="page-links pages">' . __( 'Pages:', hybrid_get_textdomain() ), 'after' => '</p>' ) ); ?>
 
 				</div><!-- .entry-content -->
 
-				<?php hybrid_after_entry(); // After entry hook ?>
+				<?php do_atomic( 'after_entry' ); // hybrid_after_entry ?>
 
 			</div><!-- .hentry -->
 
-			<?php hybrid_after_singular(); // After singular hook ?>
+			<?php do_atomic( 'after_singular' ); // hybrid_after_singular ?>
 
-			<?php comments_template( '/comments.php', true ); ?>
+			<?php comments_template( '/comments.php', true ); // Loads the comments.php template ?>
 
 			<?php endwhile; ?>
 
 		<?php else: ?>
 
-			<p class="no-data">
-				<?php _e( 'Apologies, but no results were found.', 'hybrid' ); ?>
-			</p><!-- .no-data -->
+			<?php get_template_part( 'loop-error' ); // Loads the loop-error.php template. ?>
 
 		<?php endif; ?>
 
-		<?php hybrid_after_content(); // After content hook ?>
+		<?php do_atomic( 'after_content' ); // hybrid_after_content ?>
 
 	</div><!-- .content .hfeed -->
 
-<?php get_footer(); ?>
\ No newline at end of file
+<?php get_footer(); // Loads the footer.php template. ?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/page-authors.php b/wp-content/themes/hybrid/page-authors.php
index cfafba6bd..579ab64da 100644
--- a/wp-content/themes/hybrid/page-authors.php
+++ b/wp-content/themes/hybrid/page-authors.php
@@ -4,29 +4,32 @@
  *
  * The Authors page template is for listing the authors of your site.  It shows each author's 
  * biographical information and avatar while linking the author's archive page.
- * @link http://themehybrid.com/themes/hybrid/page-templates/authors
  *
  * @package Hybrid
  * @subpackage Template
+ * @link http://themehybrid.com/themes/hybrid/page-templates/authors
+ * @deprecated 0.9.0 This template will eventually be moved to the Hybrid page templates pack.
  */
 
-get_header(); ?>
+get_header(); // Loads the header.php template. ?>
 
 	<div id="content" class="hfeed content">
 
-		<?php hybrid_before_content(); // Before content hook ?>
+		<?php do_atomic( 'before_content' ); // hybrid_before_content ?>
 
 		<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
 
 			<div id="post-<?php the_ID(); ?>" class="<?php hybrid_entry_class(); ?>">
 
-				<?php hybrid_before_entry(); // Before entry hook ?>
+				<?php do_atomic( 'before_entry' ); // hybrid_before_entry ?>
 
 				<div class="entry-content">
 
 					<?php the_content(); ?>
 
-					<?php foreach ( get_users_of_blog() as $author ) : ?>
+					<?php $users = get_users(); ?>
+
+					<?php foreach ( $users as $author ) : ?>
 
 						<?php $user = new WP_User( $author->ID ); ?>
 
@@ -50,30 +53,28 @@ get_header(); ?>
 
 					<?php endforeach; ?>
 
-					<?php wp_link_pages( array( 'before' => '<p class="page-links pages">' . __( 'Pages:', 'hybrid' ), 'after' => '</p>' ) ); ?>
+					<?php wp_link_pages( array( 'before' => '<p class="page-links pages">' . __( 'Pages:', hybrid_get_textdomain() ), 'after' => '</p>' ) ); ?>
 
 				</div><!-- .entry-content -->
 
-				<?php hybrid_after_entry(); // After entry hook ?>
+				<?php do_atomic( 'after_entry' ); // hybrid_after_entry ?>
 
 			</div><!-- .hentry -->
 
-			<?php hybrid_after_singular(); // After singular hook ?>
+			<?php do_atomic( 'after_singular' ); // hybrid_after_singular ?>
 
-			<?php comments_template( '/comments.php', true ); ?>
+			<?php comments_template( '/comments.php', true ); // Loads the comments.php template ?>
 
 			<?php endwhile; ?>
 
 		<?php else: ?>
 
-			<p class="no-data">
-				<?php _e( 'Apologies, but no results were found.', 'hybrid' ); ?>
-			</p><!-- .no-data -->
+			<?php get_template_part( 'loop-error' ); // Loads the loop-error.php template. ?>
 
 		<?php endif; ?>
 
-		<?php hybrid_after_content(); // After content hook ?>
+		<?php do_atomic( 'after_content' ); // hybrid_after_content ?>
 
 	</div><!-- .content .hfeed -->
 
-<?php get_footer(); ?>
\ No newline at end of file
+<?php get_footer(); // Loads the footer.php template. ?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/page-biography.php b/wp-content/themes/hybrid/page-biography.php
index 192ee2e82..430a2ede6 100644
--- a/wp-content/themes/hybrid/page-biography.php
+++ b/wp-content/themes/hybrid/page-biography.php
@@ -4,28 +4,27 @@
  *
  * A page template for listing the page author's avatar, biographical info, and other links set in their profile.
  * Should make it easy to create an about page or biography for single-author blogs.
- * @link http://themehybrid.com/themes/hybrid/page-templates/biography
  *
  * @package Hybrid
  * @subpackage Template
+ * @link http://themehybrid.com/themes/hybrid/page-templates/biography
+ * @deprecated 0.9.0 This template will eventually be moved to the Hybrid page templates pack.
  */
 
-get_header(); ?>
+get_header(); // Loads the header.php template. ?>
 
 	<div id="content" class="hfeed content">
 
-		<?php hybrid_before_content(); // Before content hook ?>
+		<?php do_atomic( 'before_content' ); // hybrid_before_content ?>
 
 		<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
 
 			<div id="post-<?php the_ID(); ?>" class="<?php hybrid_entry_class(); ?>">
 
-				<?php hybrid_before_entry(); // Before entry hook ?>
+				<?php do_atomic( 'before_entry' ); // hybrid_before_entry ?>
 
 				<div class="entry-content">
 
-				<?php if ( $page != $wp_query->get( 'page' ) ) : ?>
-
 					<div id="hcard-<?php the_author_meta( 'user_nicename' ); ?>" class="author-profile vcard">
 
 						<a href="<?php echo get_author_posts_url( get_the_author_meta( 'ID' ) ); ?>" title="<?php the_author_meta( 'display_name' ); ?>">
@@ -39,56 +38,52 @@ get_header(); ?>
 						<ul class="xoxo clear">
 
 						<?php if ( get_the_author_meta( 'nickname' ) ) : ?>
-							<li><strong><?php _e( 'Nickname:', 'hybrid' ); ?></strong> <span class="nickname"><?php the_author_meta( 'nickname' ); ?></span></li>
+							<li><strong><?php _e( 'Nickname:', hybrid_get_textdomain() ); ?></strong> <span class="nickname"><?php the_author_meta( 'nickname' ); ?></span></li>
 						<?php endif; ?>
 
 						<?php if ( get_the_author_meta( 'user_url' ) ) : ?>
-							<li><strong><?php _e( 'Website:', 'hybrid' ); ?></strong> <a class="url" href="<?php the_author_meta( 'user_url' ); ?>" title="<?php the_author_meta( 'user_url' ); ?>"><?php the_author_meta( 'user_url' ); ?></a></li>
+							<li><strong><?php _e( 'Website:', hybrid_get_textdomain() ); ?></strong> <a class="url" href="<?php the_author_meta( 'user_url' ); ?>" title="<?php the_author_meta( 'user_url' ); ?>"><?php the_author_meta( 'user_url' ); ?></a></li>
 						<?php endif; ?>
 
 						<?php if ( get_the_author_meta( 'aim' ) ) : ?>
-							<li><strong><?php _e( 'AIM:', 'hybrid' ); ?></strong> <a class="url" href="aim:goim?screenname=<?php the_author_meta( 'aim' ); ?>" title="<?php printf( __( 'IM with %1$s', 'hybrid' ), get_the_author_meta( 'aim' ) ); ?>"><?php the_author_meta( 'aim' ); ?></a></li>
+							<li><strong><?php _e( 'AIM:', hybrid_get_textdomain() ); ?></strong> <a class="url" href="aim:goim?screenname=<?php the_author_meta( 'aim' ); ?>" title="<?php printf( __( 'IM with %1$s', hybrid_get_textdomain() ), get_the_author_meta( 'aim' ) ); ?>"><?php the_author_meta( 'aim' ); ?></a></li>
 						<?php endif; ?>
 
 						<?php if ( get_the_author_meta( 'jabber' ) ) : ?>
-							<li><strong><?php _e( 'Jabber:', 'hybrid' ); ?></strong> <a class="url" href="xmpp:<?php the_author_meta( 'jabber' ); ?>@jabberservice.com" title="<?php printf( __( 'IM with %1$s', 'hybrid' ), get_the_author_meta( 'jabber' ) ); ?>"><?php the_author_meta( 'jabber' ); ?></a></li>
+							<li><strong><?php _e( 'Jabber:', hybrid_get_textdomain() ); ?></strong> <a class="url" href="xmpp:<?php the_author_meta( 'jabber' ); ?>@jabberservice.com" title="<?php printf( __( 'IM with %1$s', hybrid_get_textdomain() ), get_the_author_meta( 'jabber' ) ); ?>"><?php the_author_meta( 'jabber' ); ?></a></li>
 						<?php endif; ?>
 
 						<?php if ( get_the_author_meta( 'yim' ) ) : ?>
-							<li><strong><?php _e( 'Yahoo:', 'hybrid' ); ?></strong> <a class="url" href="ymsgr:sendIM?<?php the_author_meta( 'yim' ); ?>" title="<?php printf( __( 'IM with %1$s', 'hybrid' ), get_the_author_meta( 'yim' ) ); ?>"><?php the_author_meta( 'yim' ); ?></a></li>
+							<li><strong><?php _e( 'Yahoo:', hybrid_get_textdomain() ); ?></strong> <a class="url" href="ymsgr:sendIM?<?php the_author_meta( 'yim' ); ?>" title="<?php printf( __( 'IM with %1$s', hybrid_get_textdomain() ), get_the_author_meta( 'yim' ) ); ?>"><?php the_author_meta( 'yim' ); ?></a></li>
 						<?php endif; ?>
 
 						</ul><!-- .xoxo -->
 
 					</div><!-- .author-profile .vcard -->
 
-				<?php endif; ?>
-
 					<?php the_content(); ?>
-					<?php wp_link_pages( array( 'before' => '<p class="page-links pages">' . __( 'Pages:', 'hybrid' ), 'after' => '</p>' ) ); ?>
+					<?php wp_link_pages( array( 'before' => '<p class="page-links pages">' . __( 'Pages:', hybrid_get_textdomain() ), 'after' => '</p>' ) ); ?>
 
 				</div><!-- .entry-content -->
 
-				<?php hybrid_after_entry(); // After entry hook ?>
+				<?php do_atomic( 'after_entry' ); // hybrid_after_entry ?>
 
 			</div><!-- .hentry -->
 
-			<?php hybrid_after_singular(); // After singular hook ?>
+			<?php do_atomic( 'after_singular' ); // hybrid_after_singular ?>
 
-			<?php comments_template( '/comments.php', true ); ?>
+			<?php comments_template( '/comments.php', true ); // Loads the comments.php template ?>
 
 			<?php endwhile; ?>
 
 		<?php else: ?>
 
-			<p class="no-data">
-				<?php _e( 'Apologies, but no results were found.', 'hybrid' ); ?>
-			</p><!-- .no-data -->
+			<?php get_template_part( 'loop-error' ); // Loads the loop-error.php template. ?>
 
 		<?php endif; ?>
 
-		<?php hybrid_after_content(); // After content hook ?>
+		<?php do_atomic( 'after_content' ); // hybrid_after_content ?>
 
 	</div><!-- .content .hfeed -->
 
-<?php get_footer(); ?>
\ No newline at end of file
+<?php get_footer(); // Loads the footer.php template. ?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/page-blog.php b/wp-content/themes/hybrid/page-blog.php
index 8ef91e241..3605c86e5 100644
--- a/wp-content/themes/hybrid/page-blog.php
+++ b/wp-content/themes/hybrid/page-blog.php
@@ -4,17 +4,18 @@
  *
  * If you want to set up an alternate blog page, just use this template for your page.
  * This template shows your latest posts.
- * @link http://themehybrid.com/themes/hybrid/page-templates/blog
  *
  * @package Hybrid
  * @subpackage Template
+ * @link http://themehybrid.com/themes/hybrid/page-templates/blog
+ * @deprecated 0.9.0 Users should no longer be using this template. 'home.php' is used to show posts.
  */
 
-get_header(); ?>
+get_header(); // Loads the header.php template. ?>
 
 	<div id="content" class="hfeed content">
 
-		<?php hybrid_before_content(); // Before content hook ?>
+		<?php do_atomic( 'before_content' ); // hybrid_before_content ?>
 
 		<?php
 			$wp_query = new WP_Query();
@@ -26,31 +27,29 @@ get_header(); ?>
 
 			<div id="post-<?php the_ID(); ?>" class="<?php hybrid_entry_class(); ?>">
 
-				<?php hybrid_before_entry(); // Before entry hook ?>
+				<?php do_atomic( 'before_entry' ); // hybrid_before_entry ?>
 
 				<div class="entry-content">
-					<?php the_content( sprintf( __( 'Continue reading %1$s', 'hybrid' ), the_title( ' "', '"', false ) ) ); ?>
-					<?php wp_link_pages( array( 'before' => '<p class="page-links pages">' . __( 'Pages:', 'hybrid' ), 'after' => '</p>' ) ); ?>
+					<?php the_content( sprintf( __( 'Continue reading %1$s', hybrid_get_textdomain() ), the_title( ' "', '"', false ) ) ); ?>
+					<?php wp_link_pages( array( 'before' => '<p class="page-links pages">' . __( 'Pages:', hybrid_get_textdomain() ), 'after' => '</p>' ) ); ?>
 				</div><!-- .entry-content -->
 
-				<?php hybrid_after_entry(); // After entry hook ?>
+				<?php do_atomic( 'after_entry' ); // hybrid_after_entry ?>
 
 			</div><!-- .hentry -->
 
 			<?php endwhile; ?>
 
-			<?php hybrid_after_singular(); // After singular hook ?>
+			<?php do_atomic( 'after_singular' ); // hybrid_after_singular ?>
 
 		<?php else: ?>
 
-			<p class="no-data">
-				<?php _e( 'Apologies, but no results were found.', 'hybrid' ); ?>
-			</p><!-- .no-data -->
+			<?php get_template_part( 'loop-error' ); // Loads the loop-error.php template. ?>
 
 		<?php endif; ?>
 
-		<?php hybrid_after_content(); // After content hook ?>
+		<?php do_atomic( 'after_content' ); // hybrid_after_content ?>
 
 	</div><!-- .content .hfeed -->
 
-<?php get_footer(); ?>
\ No newline at end of file
+<?php get_footer(); // Loads the footer.php template. ?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/page-bookmarks.php b/wp-content/themes/hybrid/page-bookmarks.php
index a459f917a..220db4d8e 100644
--- a/wp-content/themes/hybrid/page-bookmarks.php
+++ b/wp-content/themes/hybrid/page-bookmarks.php
@@ -4,23 +4,24 @@
  *
  * The bookmarks template is a page template that displays a list of all your bookmarks/links
  * by link category below the main content of the page.
- * @link http://themehybrid.com/themes/hybrid/page-templates/bookmarks
  *
  * @package Hybrid
  * @subpackage Template
+ * @link http://themehybrid.com/themes/hybrid/page-templates/bookmarks
+ * @deprecated 0.9.0 Template will be renamed page-template-bookmarks.php to comply with theme repo guidelines.
  */
 
-get_header(); ?>
+get_header(); // Loads the header.php template. ?>
 
 	<div id="content" class="hfeed content">
 
-		<?php hybrid_before_content(); // Before content hook ?>
+		<?php do_atomic( 'before_content' ); // hybrid_before_content ?>
 
 		<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
 
 			<div id="post-<?php the_ID(); ?>" class="<?php hybrid_entry_class(); ?>">
 
-				<?php hybrid_before_entry(); // Before entry hook ?>
+				<?php do_atomic( 'before_entry' ); // hybrid_before_entry ?>
 
 				<div class="entry-content">
 
@@ -40,30 +41,28 @@ get_header(); ?>
 					); ?>
 					<?php wp_list_bookmarks( $args ); ?>
 
-					<?php wp_link_pages( array( 'before' => '<p class="page-links pages">' . __( 'Pages:', 'hybrid' ), 'after' => '</p>' ) ); ?>
+					<?php wp_link_pages( array( 'before' => '<p class="page-links pages">' . __( 'Pages:', hybrid_get_textdomain() ), 'after' => '</p>' ) ); ?>
 
 				</div><!-- .entry-content -->
 
-				<?php hybrid_after_entry(); // After entry hook ?>
+				<?php do_atomic( 'after_entry' ); // hybrid_after_entry ?>
 
 			</div><!-- .hentry -->
 
-			<?php hybrid_after_singular(); // After singular hook ?>
+			<?php do_atomic( 'after_singular' ); // hybrid_after_singular ?>
 
-			<?php comments_template( '/comments.php', true ); ?>
+			<?php comments_template( '/comments.php', true ); // Loads the comments.php template ?>
 
 			<?php endwhile; ?>
 
 		<?php else: ?>
 
-			<p class="no-data">
-				<?php _e( 'Apologies, but no results were found.', 'hybrid' ); ?>
-			</p><!-- .no-data -->
+			<?php get_template_part( 'loop-error' ); // Loads the loop-error.php template. ?>
 
 		<?php endif; ?>
 
-		<?php hybrid_after_content(); // After content hook ?>
+		<?php do_atomic( 'after_content' ); // hybrid_after_content ?>
 
 	</div><!-- .content .hfeed -->
 
-<?php get_footer(); ?>
\ No newline at end of file
+<?php get_footer(); // Loads the footer.php template. ?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/page-categories.php b/wp-content/themes/hybrid/page-categories.php
index 48153a69f..18eb677e9 100644
--- a/wp-content/themes/hybrid/page-categories.php
+++ b/wp-content/themes/hybrid/page-categories.php
@@ -4,56 +4,55 @@
  *
  * The categories template is a page template that lists your categories along with a link 
  * to the each category's RSS feed and post count.
- * @link http://themehybrid.com/themes/hybrid/page-templates/categories
  *
  * @package Hybrid
  * @subpackage Template
+ * @link http://themehybrid.com/themes/hybrid/page-templates/categories
+ * @deprecated 0.9.0 This template will eventually be moved to the Hybrid page templates pack.
  */
 
-get_header(); ?>
+get_header(); // Loads the header.php template. ?>
 
 	<div id="content" class="hfeed content">
 
-		<?php hybrid_before_content(); // Before content hook ?>
+		<?php do_atomic( 'before_content' ); // hybrid_before_content ?>
 
 		<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
 
 			<div id="post-<?php the_ID(); ?>" class="<?php hybrid_entry_class(); ?>">
 
-				<?php hybrid_before_entry(); // Before entry hook ?>
+				<?php do_atomic( 'before_entry' ); // hybrid_before_entry ?>
 
 				<div class="entry-content">
 
 					<?php the_content(); ?>
 
 					<ul class="xoxo category-archives">
-						<?php wp_list_categories( array( 'feed' => __( 'RSS', 'hybrid' ), 'show_count' => true, 'use_desc_for_title' => false, 'title_li' => false ) ); ?>
+						<?php wp_list_categories( array( 'feed' => __( 'RSS', hybrid_get_textdomain() ), 'show_count' => true, 'use_desc_for_title' => false, 'title_li' => false ) ); ?>
 					</ul><!-- .xoxo .category-archives -->
 
-					<?php wp_link_pages( array( 'before' => '<p class="page-links pages">' . __( 'Pages:', 'hybrid' ), 'after' => '</p>' ) ); ?>
+					<?php wp_link_pages( array( 'before' => '<p class="page-links pages">' . __( 'Pages:', hybrid_get_textdomain() ), 'after' => '</p>' ) ); ?>
 
 				</div><!-- .entry-content -->
 
-				<?php hybrid_after_entry(); // After entry hook ?>
+				<?php do_atomic( 'after_entry' ); // hybrid_after_entry ?>
 
 			</div><!-- .hentry -->
 
-			<?php hybrid_after_singular(); // After singular hook ?>
+			<?php do_atomic( 'after_singular' ); // hybrid_after_singular ?>
 
-			<?php comments_template( '/comments.php', true ); ?>
+			<?php comments_template( '/comments.php', true ); // Loads the comments.php template ?>
 
 			<?php endwhile; ?>
 
 		<?php else: ?>
 
-			<p class="no-data">
-				<?php _e( 'Apologies, but no results were found.', 'hybrid' ); ?>
-			</p><!-- .no-data -->
+			<?php get_template_part( 'loop-error' ); // Loads the loop-error.php template. ?>
 
 		<?php endif; ?>
 
-		<?php hybrid_after_content(); // After content hook ?>
+		<?php do_atomic( 'after_content' ); // hybrid_after_content ?>
 
 	</div><!-- .content .hfeed -->
 
-<?php get_footer(); ?>
\ No newline at end of file
+<?php get_footer(); // Loads the footer.php template. ?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/page-daily.php b/wp-content/themes/hybrid/page-daily.php
index d04bfd525..a2b1cbbce 100644
--- a/wp-content/themes/hybrid/page-daily.php
+++ b/wp-content/themes/hybrid/page-daily.php
@@ -7,19 +7,20 @@
  *
  * @package Hybrid
  * @subpackage Template
+ * @deprecated 0.9.0 This template will eventually be moved to the Hybrid page templates pack.
  */
 
-get_header(); ?>
+get_header(); // Loads the header.php template. ?>
 
 	<div id="content" class="hfeed content">
 
-		<?php hybrid_before_content(); // Before content hook ?>
+		<?php do_atomic( 'before_content' ); // hybrid_before_content ?>
 
 		<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
 
 			<div id="post-<?php the_ID(); ?>" class="<?php hybrid_entry_class(); ?>">
 
-				<?php hybrid_before_entry(); // Before entry hook ?>
+				<?php do_atomic( 'before_entry' ); // hybrid_before_entry ?>
 
 				<div class="entry-content">
 
@@ -29,30 +30,28 @@ get_header(); ?>
 						<?php wp_get_archives( array( 'type' => 'daily', 'show_post_count' => true ) ); ?>
 					</ul><!-- .xoxo .daily-archives -->
 
-					<?php wp_link_pages( array( 'before' => '<p class="page-links pages">' . __( 'Pages:', 'hybrid' ), 'after' => '</p>' ) ); ?>
+					<?php wp_link_pages( array( 'before' => '<p class="page-links pages">' . __( 'Pages:', hybrid_get_textdomain() ), 'after' => '</p>' ) ); ?>
 
 				</div><!-- .entry-content -->
 
-				<?php hybrid_after_entry(); // After entry hook ?>
+				<?php do_atomic( 'after_entry' ); // hybrid_after_entry ?>
 
 			</div><!-- .hentry -->
 
-			<?php hybrid_after_singular(); // After singular hook ?>
+			<?php do_atomic( 'after_singular' ); // hybrid_after_singular ?>
 
-			<?php comments_template( '/comments.php', true ); ?>
+			<?php comments_template( '/comments.php', true ); // Loads the comments.php template ?>
 
 			<?php endwhile; ?>
 
 		<?php else: ?>
 
-			<p class="no-data">
-				<?php _e( 'Apologies, but no results were found.', 'hybrid' ); ?>
-			</p><!-- .no-data -->
+			<?php get_template_part( 'loop-error' ); // Loads the loop-error.php template. ?>
 
 		<?php endif; ?>
 
-		<?php hybrid_after_content(); // After content hook ?>
+		<?php do_atomic( 'after_content' ); // hybrid_after_content ?>
 
 	</div><!-- .content .hfeed -->
 
-<?php get_footer(); ?>
\ No newline at end of file
+<?php get_footer(); // Loads the footer.php template. ?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/page-logged-in.php b/wp-content/themes/hybrid/page-logged-in.php
index f86e7cd8b..6d4758252 100644
--- a/wp-content/themes/hybrid/page-logged-in.php
+++ b/wp-content/themes/hybrid/page-logged-in.php
@@ -6,36 +6,37 @@
  * of the page and its comments. If the user isn't logged in, a message to log in with a link to the 
  * WordPress login page will be displayed. If the site has open registration, a link to register will
  * also be displayed.
- * @link http://themehybrid.com/themes/hybrid/page-templates/logged-in
  *
  * @package Hybrid
  * @subpackage Template
+ * @link http://themehybrid.com/themes/hybrid/page-templates/logged-in
+ * @deprecated 0.9.0 This template will eventually be moved to the Hybrid page templates pack.
  */
 
-get_header(); ?>
+get_header(); // Loads the header.php template. ?>
 
 	<div id="content" class="hfeed content">
 
-		<?php hybrid_before_content(); // Before content hook ?>
+		<?php do_atomic( 'before_content' ); // hybrid_before_content ?>
 
 		<?php if ( have_posts() && is_user_logged_in() ) : while ( have_posts() ) : the_post(); ?>
 
 			<div id="post-<?php the_ID(); ?>" class="<?php hybrid_entry_class(); ?>">
 
-				<?php hybrid_before_entry(); // Before entry hook ?>
+				<?php do_atomic( 'before_entry' ); // hybrid_before_entry ?>
 
 				<div class="entry-content">
 					<?php the_content(); ?>
-					<?php wp_link_pages( array( 'before' => '<p class="page-links pages">' . __( 'Pages:', 'hybrid' ), 'after' => '</p>' ) ); ?>
+					<?php wp_link_pages( array( 'before' => '<p class="page-links pages">' . __( 'Pages:', hybrid_get_textdomain() ), 'after' => '</p>' ) ); ?>
 				</div><!-- .entry-content -->
 
-				<?php hybrid_after_entry(); // After entry hook ?>
+				<?php do_atomic( 'after_entry' ); // hybrid_after_entry ?>
 
 			</div><!-- .hentry -->
 
-			<?php hybrid_after_singular(); // After singular hook ?>
+			<?php do_atomic( 'after_singular' ); // hybrid_after_singular ?>
 
-			<?php comments_template( '/comments.php', true ); ?>
+			<?php comments_template( '/comments.php', true ); // Loads the comments.php template ?>
 
 			<?php endwhile; ?>
 
@@ -43,34 +44,32 @@ get_header(); ?>
 
 			<div id="post-0" class="<?php hybrid_entry_class(); ?>">
 
-				<?php hybrid_before_entry(); // Before entry hook ?>
+				<?php do_atomic( 'before_entry' ); // hybrid_before_entry ?>
 
 				<div class="entry-content">
 
 					<p class="alert">
-						<?php printf( __( 'You must be <a href="%1$s" title="Log in">logged in</a> to view the content of this page.', 'hybrid' ), wp_login_url( get_permalink() ) ); ?>
+						<?php printf( __( 'You must be <a href="%1$s" title="Log in">logged in</a> to view the content of this page.', hybrid_get_textdomain() ), wp_login_url( get_permalink() ) ); ?>
 
-						<?php if ( get_option( 'users_can_register' ) ) printf( __( 'If you\'re not currently a member, please take a moment to <a href="%1$s" title="Register">register</a>.', 'hybrid' ), site_url( 'wp-login.php?action=register', 'login' ) ); ?>
+						<?php if ( get_option( 'users_can_register' ) ) printf( __( 'If you\'re not currently a member, please take a moment to <a href="%1$s" title="Register">register</a>.', hybrid_get_textdomain() ), site_url( 'wp-login.php?action=register', 'login' ) ); ?>
 					</p><!-- .alert -->
 
 				</div><!-- .entry-content -->
 
-				<?php hybrid_after_entry(); // After entry hook ?>
+				<?php do_atomic( 'after_entry' ); // hybrid_after_entry ?>
 
 			</div><!-- #post-0 .hentry -->
 
-			<?php hybrid_after_singular(); // After singular hook ?>
+			<?php do_atomic( 'after_singular' ); // hybrid_after_singular ?>
 
 		<?php else: ?>
 
-			<p class="no-data">
-				<?php _e( 'Apologies, but no results were found.', 'hybrid' ); ?>
-			</p><!-- .no-data -->
+			<?php get_template_part( 'loop-error' ); // Loads the loop-error.php template. ?>
 
 		<?php endif; ?>
 
-		<?php hybrid_after_content(); // After content hook ?>
+		<?php do_atomic( 'after_content' ); // hybrid_after_content ?>
 
 	</div><!-- .content .hfeed -->
 
-<?php get_footer(); ?>
\ No newline at end of file
+<?php get_footer(); // Loads the footer.php template. ?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/page-monthly.php b/wp-content/themes/hybrid/page-monthly.php
index c15c0c14c..dd4539699 100644
--- a/wp-content/themes/hybrid/page-monthly.php
+++ b/wp-content/themes/hybrid/page-monthly.php
@@ -1,25 +1,26 @@
 <?php
 /**
  * Template Name: Monthly
- **
+ *
  * The Monthly page template is used to show a list of your post archives by month. For each month a 
  * post has been made, the month is listed along with the number of posts for that particular month.
  *
  * @package Hybrid
  * @subpackage Template
+ * @deprecated 0.9.0 This template will eventually be moved to the Hybrid page templates pack.
  */
 
-get_header(); ?>
+get_header(); // Loads the header.php template. ?>
 
 	<div id="content" class="hfeed content">
 
-		<?php hybrid_before_content(); // Before content hook ?>
+		<?php do_atomic( 'before_content' ); // hybrid_before_content ?>
 
 		<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
 
 			<div id="post-<?php the_ID(); ?>" class="<?php hybrid_entry_class(); ?>">
 
-				<?php hybrid_before_entry(); // Before entry hook ?>
+				<?php do_atomic( 'before_entry' ); // hybrid_before_entry ?>
 
 				<div class="entry-content">
 
@@ -29,30 +30,28 @@ get_header(); ?>
 						<?php wp_get_archives( array( 'type' => 'monthly', 'show_post_count' => true ) ); ?>
 					</ul><!-- .xoxo .monthly-archives -->
 
-					<?php wp_link_pages( array( 'before' => '<p class="page-links pages">' . __( 'Pages:', 'hybrid' ), 'after' => '</p>' ) ); ?>
+					<?php wp_link_pages( array( 'before' => '<p class="page-links pages">' . __( 'Pages:', hybrid_get_textdomain() ), 'after' => '</p>' ) ); ?>
 
 				</div><!-- .entry-content -->
 
-				<?php hybrid_after_entry(); // After entry hook ?>
+				<?php do_atomic( 'after_entry' ); // hybrid_after_entry ?>
 
 			</div><!-- .hentry -->
 
-			<?php hybrid_after_singular(); // After singular hook ?>
+			<?php do_atomic( 'after_singular' ); // hybrid_after_singular ?>
 
-			<?php comments_template( '/comments.php', true ); ?>
+			<?php comments_template( '/comments.php', true ); // Loads the comments.php template ?>
 
 			<?php endwhile; ?>
 
 		<?php else: ?>
 
-			<p class="no-data">
-				<?php _e( 'Apologies, but no results were found.', 'hybrid' ); ?>
-			</p><!-- .no-data -->
+			<?php get_template_part( 'loop-error' ); // Loads the loop-error.php template. ?>
 
 		<?php endif; ?>
 
-		<?php hybrid_after_content(); // After content hook ?>
+		<?php do_atomic( 'after_content' ); // hybrid_after_content ?>
 
 	</div><!-- .content .hfeed -->
 
-<?php get_footer(); ?>
\ No newline at end of file
+<?php get_footer(); // Loads the footer.php template. ?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/page-no-widgets.php b/wp-content/themes/hybrid/page-no-widgets.php
index 0b9504494..e40ac3380 100644
--- a/wp-content/themes/hybrid/page-no-widgets.php
+++ b/wp-content/themes/hybrid/page-no-widgets.php
@@ -3,49 +3,48 @@
  * Template Name: No Widgets
  *
  * A template to use on pages that disables widgets in all widget areas.
- * @link http://themehybrid.com/themes/hybrid/page-templates/no-widgets
  *
  * @package Hybrid
  * @subpackage Template
+ * @link http://themehybrid.com/themes/hybrid/page-templates/no-widgets
+ * @deprecated 0.9.0 Template will be renamed page-template-no-widgets.php to comply with theme repo guidelines.
  */
 
-get_header(); ?>
+get_header(); // Loads the header.php template. ?>
 
 	<div id="content" class="hfeed content">
 
-		<?php hybrid_before_content(); // Before content hook ?>
+		<?php do_atomic( 'before_content' ); // hybrid_before_content ?>
 
 		<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
 
 			<div id="post-<?php the_ID(); ?>" class="<?php hybrid_entry_class(); ?>">
 
-				<?php hybrid_before_entry(); // Before entry hook ?>
+				<?php do_atomic( 'before_entry' ); // hybrid_before_entry ?>
 
 				<div class="entry-content">
 					<?php the_content(); ?>
-					<?php wp_link_pages( array( 'before' => '<p class="page-links pages">' . __( 'Pages:', 'hybrid' ), 'after' => '</p>' ) ); ?>
+					<?php wp_link_pages( array( 'before' => '<p class="page-links pages">' . __( 'Pages:', hybrid_get_textdomain() ), 'after' => '</p>' ) ); ?>
 				</div><!-- .entry-content -->
 
-				<?php hybrid_after_entry(); // After entry hook ?>
+				<?php do_atomic( 'after_entry' ); // hybrid_after_entry ?>
 
 			</div><!-- .hentry -->
 
-			<?php hybrid_after_singular(); // After singular hook ?>
+			<?php do_atomic( 'after_singular' ); // hybrid_after_singular ?>
 
-			<?php comments_template( '/comments.php', true ); ?>
+			<?php comments_template( '/comments.php', true ); // Loads the comments.php template ?>
 
 			<?php endwhile; ?>
 
 		<?php else: ?>
 
-			<p class="no-data">
-				<?php _e( 'Apologies, but no results were found.', 'hybrid' ); ?>
-			</p><!-- .no-data -->
+			<?php get_template_part( 'loop-error' ); // Loads the loop-error.php template. ?>
 
 		<?php endif; ?>
 
-		<?php hybrid_after_content(); // After content hook ?>
+		<?php do_atomic( 'after_content' ); // hybrid_after_content ?>
 
 	</div><!-- .content .hfeed -->
 
-<?php get_footer(); ?>
\ No newline at end of file
+<?php get_footer(); // Loads the footer.php template. ?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/page-post_tag-cloud.php b/wp-content/themes/hybrid/page-post_tag-cloud.php
index 35e69de7d..b2a02a230 100644
--- a/wp-content/themes/hybrid/page-post_tag-cloud.php
+++ b/wp-content/themes/hybrid/page-post_tag-cloud.php
@@ -4,56 +4,55 @@
  *
  * The Tags template is a page template that displays a tag cloud of your post_tag (taxonomy)
  * terms, linking to each term's archive.
- * @link http://themehybrid.com/themes/hybrid/page-templates/tags
  *
  * @package Hybrid
  * @subpackage Template
+ * @link http://themehybrid.com/themes/hybrid/page-templates/tags
+ * @deprecated 0.9.0 This template will eventually be moved to the Hybrid page templates pack.
  */
 
-get_header(); ?>
+get_header(); // Loads the header.php template. ?>
 
 	<div id="content" class="hfeed content">
 
-		<?php hybrid_before_content(); // Before content hook ?>
+		<?php do_atomic( 'before_content' ); // hybrid_before_content ?>
 
 		<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
 
 			<div id="post-<?php the_ID(); ?>" class="<?php hybrid_entry_class(); ?>">
 
-				<?php hybrid_before_entry(); // Before entry hook ?>
+				<?php do_atomic( 'before_entry' ); // hybrid_before_entry ?>
 
 				<div class="entry-content">
 
 					<?php the_content(); ?>
 
-					<p class="post_tag-cloud tag-cloud">
+					<p class="term-cloud post_tag-cloud tag-cloud">
 						<?php wp_tag_cloud( array( 'number' => 0 ) ); ?>
-					</p><!-- .post_tag-cloud .tag-cloud -->
+					</p><!-- .term-cloud .post_tag-cloud -->
 
-					<?php wp_link_pages( array( 'before' => '<p class="page-links pages">' . __( 'Pages:', 'hybrid' ), 'after' => '</p>' ) ); ?>
+					<?php wp_link_pages( array( 'before' => '<p class="page-links pages">' . __( 'Pages:', hybrid_get_textdomain() ), 'after' => '</p>' ) ); ?>
 
 				</div><!-- .entry-content -->
 
-				<?php hybrid_after_entry(); // After entry hook ?>
+				<?php do_atomic( 'after_entry' ); // hybrid_after_entry ?>
 
 			</div><!-- .hentry -->
 
-			<?php hybrid_after_singular(); // After singular hook ?>
+			<?php do_atomic( 'after_singular' ); // hybrid_after_singular ?>
 
-			<?php comments_template( '/comments.php', true ); ?>
+			<?php comments_template( '/comments.php', true ); // Loads the comments.php template ?>
 
 			<?php endwhile; ?>
 
 		<?php else: ?>
 
-			<p class="no-data">
-				<?php _e( 'Apologies, but no results were found.', 'hybrid' ); ?>
-			</p><!-- .no-data -->
+			<?php get_template_part( 'loop-error' ); // Loads the loop-error.php template. ?>
 
 		<?php endif; ?>
 
-		<?php hybrid_after_content(); // After content hook ?>
+		<?php do_atomic( 'after_content' ); // hybrid_after_content ?>
 
 	</div><!-- .content .hfeed -->
 
-<?php get_footer(); ?>
\ No newline at end of file
+<?php get_footer(); // Loads the footer.php template. ?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/page-sitemap.php b/wp-content/themes/hybrid/page-sitemap.php
index aa340bc49..f2c201a42 100644
--- a/wp-content/themes/hybrid/page-sitemap.php
+++ b/wp-content/themes/hybrid/page-sitemap.php
@@ -4,116 +4,115 @@
  *
  * The Sitemap template is a page template that creates and HTML-based sitemap of your
  * site, listing nearly every page of your site. It lists your feeds, pages, archives, and posts.
- * @link http://themehybrid.com/themes/hybrid/page-templates/sitemap
  *
  * @package Hybrid
  * @subpackage Template
+ * @link http://themehybrid.com/themes/hybrid/page-templates/sitemap
+ * @deprecated 0.9.0 This template will eventually be moved to the Hybrid page templates pack.
  */
 
-get_header(); ?>
+get_header(); // Loads the header.php template. ?>
 
 	<div id="content" class="hfeed content">
 
-		<?php hybrid_before_content(); // Before content hook ?>
+		<?php do_atomic( 'before_content' ); // hybrid_before_content ?>
 
 		<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
 
 			<div id="post-<?php the_ID(); ?>" class="<?php hybrid_entry_class(); ?>">
 
-				<?php hybrid_before_entry(); // Before entry hook ?>
+				<?php do_atomic( 'before_entry' ); // hybrid_before_entry ?>
 
 				<div class="entry-content">
 
 					<?php the_content(); ?>
 
-					<h2><?php _e( 'Feeds', 'hybrid' ); ?></h2>
+					<h2><?php _e( 'Feeds', hybrid_get_textdomain() ); ?></h2>
 
 					<ul class="xoxo feeds">
-						<li><a href="<?php bloginfo( 'rdf_url' ); ?>" title="<?php esc_attr_e( 'RDF/RSS 1.0 feed', 'hybrid' ); ?>"><?php _e( '<acronym title="Resource Description Framework">RDF</acronym> <acronym title="Really Simple Syndication">RSS</acronym> 1.0 feed', 'hybrid' ); ?></a></li>
-						<li><a href="<?php bloginfo( 'rss_url' ); ?>" title="<?php esc_attr_e( 'RSS 0.92 feed', 'hybrid' ); ?>"><?php _e( '<acronym title="Really Simple Syndication">RSS</acronym> 0.92 feed', 'hybrid' ); ?></a></li>
-						<li><a href="<?php bloginfo( 'rss2_url' ); ?>" title="<?php esc_attr_e( 'RSS 2.0 feed', 'hybrid' ); ?>"><?php _e( '<acronym title="Really Simple Syndication">RSS</acronym> 2.0 feed', 'hybrid' ); ?></a></li>
-						<li><a href="<?php bloginfo( 'atom_url' ); ?>" title="<?php esc_attr_e( 'Atom feed', 'hybrid' ); ?>"><?php _e( 'Atom feed', 'hybrid' ); ?></a></li>
-						<li><a href="<?php bloginfo( 'comments_rss2_url' ); ?>" title="<?php esc_attr_e( 'Comments RSS 2.0 feed', 'hybrid' ); ?>"><?php _e( 'Comments <acronym title="Really Simple Syndication">RSS</acronym> 2.0 feed', 'hybrid' ); ?></a></li>
+						<li><a href="<?php bloginfo( 'rdf_url' ); ?>" title="<?php esc_attr_e( 'RDF/RSS 1.0 feed', hybrid_get_textdomain() ); ?>"><?php _e( '<acronym title="Resource Description Framework">RDF</acronym> <acronym title="Really Simple Syndication">RSS</acronym> 1.0 feed', hybrid_get_textdomain() ); ?></a></li>
+						<li><a href="<?php bloginfo( 'rss_url' ); ?>" title="<?php esc_attr_e( 'RSS 0.92 feed', hybrid_get_textdomain() ); ?>"><?php _e( '<acronym title="Really Simple Syndication">RSS</acronym> 0.92 feed', hybrid_get_textdomain() ); ?></a></li>
+						<li><a href="<?php bloginfo( 'rss2_url' ); ?>" title="<?php esc_attr_e( 'RSS 2.0 feed', hybrid_get_textdomain() ); ?>"><?php _e( '<acronym title="Really Simple Syndication">RSS</acronym> 2.0 feed', hybrid_get_textdomain() ); ?></a></li>
+						<li><a href="<?php bloginfo( 'atom_url' ); ?>" title="<?php esc_attr_e( 'Atom feed', hybrid_get_textdomain() ); ?>"><?php _e( 'Atom feed', hybrid_get_textdomain() ); ?></a></li>
+						<li><a href="<?php bloginfo( 'comments_rss2_url' ); ?>" title="<?php esc_attr_e( 'Comments RSS 2.0 feed', hybrid_get_textdomain() ); ?>"><?php _e( 'Comments <acronym title="Really Simple Syndication">RSS</acronym> 2.0 feed', hybrid_get_textdomain() ); ?></a></li>
 					</ul><!-- .xoxo .feeds -->
 
-					<h2><?php _e( 'Pages', 'hybrid' ); ?></h2>
+					<h2><?php _e( 'Pages', hybrid_get_textdomain() ); ?></h2>
 
 					<ul class="xoxo pages">
 						<?php wp_list_pages( array( 'title_li' => false ) ); ?>
 					</ul><!-- .xoxo .pages -->
 
-					<h2><?php _e( 'Category Archives', 'hybrid' ); ?></h2>
+					<h2><?php _e( 'Category Archives', hybrid_get_textdomain() ); ?></h2>
 
 					<ul class="xoxo category-archives">
-						<?php wp_list_categories( array( 'feed' => __( 'RSS', 'hybrid' ), 'show_count' => true, 'use_desc_for_title' => false, 'title_li' => false ) ); ?>
+						<?php wp_list_categories( array( 'feed' => __( 'RSS', hybrid_get_textdomain() ), 'show_count' => true, 'use_desc_for_title' => false, 'title_li' => false ) ); ?>
 					</ul><!-- .xoxo .category-archives -->
 
-					<h2><?php _e( 'Author Archives', 'hybrid' ); ?></h2>
+					<h2><?php _e( 'Author Archives', hybrid_get_textdomain() ); ?></h2>
 
 					<ul class="xoxo author-archives">
-						<?php wp_list_authors( array( 'exclude_admin' => false, 'show_fullname' => true, 'feed' => __( 'RSS', 'hybrid' ), 'optioncount' => true, 'title_li' => false ) ); ?>
+						<?php wp_list_authors( array( 'exclude_admin' => false, 'show_fullname' => true, 'feed' => __( 'RSS', hybrid_get_textdomain() ), 'optioncount' => true, 'title_li' => false ) ); ?>
 					</ul><!-- .xoxo .author-archives -->
 
-					<h2><?php _e( 'Yearly Archives', 'hybrid' ); ?></h2>
+					<h2><?php _e( 'Yearly Archives', hybrid_get_textdomain() ); ?></h2>
 
 					<ul class="xoxo yearly-archives">
 						<?php wp_get_archives( array( 'type' => 'yearly', 'show_post_count' => true ) ); ?>
 					</ul><!-- .xoxo .yearly-archives -->
 
-					<h2><?php _e( 'Monthly Archives', 'hybrid' ); ?></h2>
+					<h2><?php _e( 'Monthly Archives', hybrid_get_textdomain() ); ?></h2>
 
 					<ul class="xoxo monthly-archives">
 						<?php wp_get_archives( array( 'type' => 'monthly', 'show_post_count' => true ) ); ?>
 					</ul><!-- .xoxo .monthly-archives -->
 
-					<h2><?php _e( 'Weekly Archives', 'hybrid' ); ?></h2>
+					<h2><?php _e( 'Weekly Archives', hybrid_get_textdomain() ); ?></h2>
 
 					<ul class="xoxo weekly-archives">
 						<?php wp_get_archives( array( 'type' => 'weekly', 'show_post_count' => true ) ); ?>
 					</ul><!-- .xoxo .weekly-archives -->
 
-					<h2><?php _e( 'Daily Archives', 'hybrid' ); ?></h2>
+					<h2><?php _e( 'Daily Archives', hybrid_get_textdomain() ); ?></h2>
 
 					<ul class="xoxo daily-archives">
 						<?php wp_get_archives( array( 'type' => 'daily', 'show_post_count' => true ) ); ?>
 					</ul><!-- .xoxo .daily-archives -->
 
-					<h2><?php _e( 'Tag Archives', 'hybrid' ); ?></h2>
+					<h2><?php _e( 'Tag Archives', hybrid_get_textdomain() ); ?></h2>
 
 					<p class="tag-cloud">
 						<?php wp_tag_cloud( array( 'number' => 0 ) ); ?>
 					</p><!-- .tag-cloud -->
 
-					<h2><?php _e( 'Blog Posts', 'hybrid' ); ?></h2>
+					<h2><?php _e( 'Blog Posts', hybrid_get_textdomain() ); ?></h2>
 
 					<ul class="xoxo post-archives">
 						<?php wp_get_archives( array( 'type' => 'postbypost' ) ); ?>
 					</ul><!-- .xoxo .post-archives -->
 
-					<?php wp_link_pages( array( 'before' => '<p class="page-links pages">' . __( 'Pages:', 'hybrid' ), 'after' => '</p>' ) ); ?>
+					<?php wp_link_pages( array( 'before' => '<p class="page-links pages">' . __( 'Pages:', hybrid_get_textdomain() ), 'after' => '</p>' ) ); ?>
 
 				</div><!-- .entry-content -->
 
-				<?php hybrid_after_entry(); // After entry hook ?>
+				<?php do_atomic( 'after_entry' ); // hybrid_after_entry ?>
 
 			</div><!-- .hentry -->
 
-			<?php hybrid_after_singular(); // After singular hook ?>
+			<?php do_atomic( 'after_singular' ); // hybrid_after_singular ?>
 
-			<?php comments_template( '/comments.php', true ); ?>
+			<?php comments_template( '/comments.php', true ); // Loads the comments.php template ?>
 
 			<?php endwhile; ?>
 
 		<?php else: ?>
 
-			<p class="no-data">
-				<?php _e( 'Apologies, but no results were found.', 'hybrid' ); ?>
-			</p><!-- .no-data -->
+			<?php get_template_part( 'loop-error' ); // Loads the loop-error.php template. ?>
 
 		<?php endif; ?>
 
-		<?php hybrid_after_content(); // After content hook ?>
+		<?php do_atomic( 'after_content' ); // hybrid_after_content ?>
 
 	</div><!-- .content .hfeed -->
 
-<?php get_footer(); ?>
\ No newline at end of file
+<?php get_footer(); // Loads the footer.php template. ?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/page-weekly.php b/wp-content/themes/hybrid/page-weekly.php
index 4f9127db4..f778d47d0 100644
--- a/wp-content/themes/hybrid/page-weekly.php
+++ b/wp-content/themes/hybrid/page-weekly.php
@@ -7,19 +7,20 @@
  *
  * @package Hybrid
  * @subpackage Template
+ * @deprecated 0.9.0 This template will eventually be moved to the Hybrid page templates pack.
  */
 
-get_header(); ?>
+get_header(); // Loads the header.php template. ?>
 
 	<div id="content" class="hfeed content">
 
-		<?php hybrid_before_content(); // Before content hook ?>
+		<?php do_atomic( 'before_content' ); // hybrid_before_content ?>
 
 		<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
 
 			<div id="post-<?php the_ID(); ?>" class="<?php hybrid_entry_class(); ?>">
 
-				<?php hybrid_before_entry(); // Before entry hook ?>
+				<?php do_atomic( 'before_entry' ); // hybrid_before_entry ?>
 
 				<div class="entry-content">
 
@@ -29,30 +30,28 @@ get_header(); ?>
 						<?php wp_get_archives( array( 'type' => 'weekly', 'show_post_count' => true ) ); ?>
 					</ul><!-- .xoxo .weekly-archives -->
 
-					<?php wp_link_pages( array( 'before' => '<p class="page-links pages">' . __( 'Pages:', 'hybrid' ), 'after' => '</p>' ) ); ?>
+					<?php wp_link_pages( array( 'before' => '<p class="page-links pages">' . __( 'Pages:', hybrid_get_textdomain() ), 'after' => '</p>' ) ); ?>
 
 				</div><!-- .entry-content -->
 
-				<?php hybrid_after_entry(); // After entry hook ?>
+				<?php do_atomic( 'after_entry' ); // hybrid_after_entry ?>
 
 			</div><!-- .hentry -->
 
-			<?php hybrid_after_singular(); // After singular hook ?>
+			<?php do_atomic( 'after_singular' ); // hybrid_after_singular ?>
 
-			<?php comments_template( '/comments.php', true ); ?>
+			<?php comments_template( '/comments.php', true ); // Loads the comments.php template ?>
 
 			<?php endwhile; ?>
 
 		<?php else: ?>
 
-			<p class="no-data">
-				<?php _e( 'Apologies, but no results were found.', 'hybrid' ); ?>
-			</p><!-- .no-data -->
+			<?php get_template_part( 'loop-error' ); // Loads the loop-error.php template. ?>
 
 		<?php endif; ?>
 
-		<?php hybrid_after_content(); // After content hook ?>
+		<?php do_atomic( 'after_content' ); // hybrid_after_content ?>
 
 	</div><!-- .content .hfeed -->
 
-<?php get_footer(); ?>
\ No newline at end of file
+<?php get_footer(); // Loads the footer.php template. ?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/page-widgets.php b/wp-content/themes/hybrid/page-widgets.php
index a5623b5d1..5599b560e 100644
--- a/wp-content/themes/hybrid/page-widgets.php
+++ b/wp-content/themes/hybrid/page-widgets.php
@@ -4,42 +4,41 @@
  *
  * The Widgets template is a page template that is completely widgetized. It houses the 
  * 'Widgets Template' widget area. Customizations to this page should be done through widgets.
- * @link http://themehybrid.com/themes/hybrid/page-templates/widgets
  *
  * @package Hybrid
  * @subpackage Template
+ * @link http://themehybrid.com/themes/hybrid/page-templates/widgets
+ * @deprecated 0.9.0 Template will be renamed page-template-widgets.php to comply with theme repo guidelines.
  */
 
-get_header(); ?>
+get_header(); // Loads the header.php template. ?>
 
 	<div id="content" class="hfeed content">
 
-		<?php hybrid_before_content(); // Before content hook ?>
+		<?php do_atomic( 'before_content' ); // hybrid_before_content ?>
 
-		<?php dynamic_sidebar( 'utility-widgets-template' ); ?>
+		<?php dynamic_sidebar( 'widgets-template' ); ?>
 
 		<?php wp_reset_query(); ?>
 
 		<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
 
-			<?php edit_post_link( __( 'Edit', 'hybrid' ), '<p class="entry-meta"><span class="edit">', '</span></p>' ); ?>
+			<?php edit_post_link( __( 'Edit', hybrid_get_textdomain() ), '<p class="entry-meta"><span class="edit">', '</span></p>' ); ?>
 
-			<?php hybrid_after_singular(); // After singular hook ?>
+			<?php do_atomic( 'after_singular' ); // hybrid_after_singular ?>
 
-			<?php comments_template( '/comments.php', true ); ?>
+			<?php comments_template( '/comments.php', true ); // Loads the comments.php template ?>
 
 			<?php endwhile; ?>
 
 		<?php else: ?>
 
-			<p class="no-data">
-				<?php _e( 'Apologies, but no results were found.', 'hybrid' ); ?>
-			</p><!-- .no-data -->
+			<?php get_template_part( 'loop-error' ); // Loads the loop-error.php template. ?>
 
 		<?php endif; ?>
 
-		<?php hybrid_after_content(); // After content hook ?>
+		<?php do_atomic( 'after_content' ); // hybrid_after_content ?>
 
 	</div><!-- .content .hfeed -->
 
-<?php get_footer(); ?>
\ No newline at end of file
+<?php get_footer(); // Loads the footer.php template. ?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/page-yearly.php b/wp-content/themes/hybrid/page-yearly.php
index 529097b5a..1abf0d3ee 100644
--- a/wp-content/themes/hybrid/page-yearly.php
+++ b/wp-content/themes/hybrid/page-yearly.php
@@ -7,19 +7,20 @@
  *
  * @package Hybrid
  * @subpackage Template
+ * @deprecated 0.9.0 This template will eventually be moved to the Hybrid page templates pack.
  */
 
-get_header(); ?>
+get_header(); // Loads the header.php template. ?>
 
 	<div id="content" class="hfeed content">
 
-		<?php hybrid_before_content(); // Before content hook ?>
+		<?php do_atomic( 'before_content' ); // hybrid_before_content ?>
 
 		<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
 
 			<div id="post-<?php the_ID(); ?>" class="<?php hybrid_entry_class(); ?>">
 
-				<?php hybrid_before_entry(); // Before entry hook ?>
+				<?php do_atomic( 'before_entry' ); // hybrid_before_entry ?>
 
 				<div class="entry-content">
 
@@ -29,30 +30,28 @@ get_header(); ?>
 						<?php wp_get_archives( array( 'type' => 'yearly', 'show_post_count' => true ) ); ?>
 					</ul><!-- .xoxo .yearly-archives -->
 
-					<?php wp_link_pages( array( 'before' => '<p class="page-links pages">' . __( 'Pages:', 'hybrid' ), 'after' => '</p>' ) ); ?>
+					<?php wp_link_pages( array( 'before' => '<p class="page-links pages">' . __( 'Pages:', hybrid_get_textdomain() ), 'after' => '</p>' ) ); ?>
 
 				</div><!-- .entry-content -->
 
-				<?php hybrid_after_entry(); // After entry hook ?>
+				<?php do_atomic( 'after_entry' ); // hybrid_after_entry ?>
 
 			</div><!-- .hentry -->
 
-			<?php hybrid_after_singular(); // After singular hook ?>
+			<?php do_atomic( 'after_singular' ); // hybrid_after_singular ?>
 
-			<?php comments_template( '/comments.php', true ); ?>
+			<?php comments_template( '/comments.php', true ); // Loads the comments.php template ?>
 
 			<?php endwhile; ?>
 
 		<?php else: ?>
 
-			<p class="no-data">
-				<?php _e( 'Apologies, but no results were found.', 'hybrid' ); ?>
-			</p><!-- .no-data -->
+			<?php get_template_part( 'loop-error' ); // Loads the loop-error.php template. ?>
 
 		<?php endif; ?>
 
-		<?php hybrid_after_content(); // After content hook ?>
+		<?php do_atomic( 'after_content' ); // hybrid_after_content ?>
 
 	</div><!-- .content .hfeed -->
 
-<?php get_footer(); ?>
\ No newline at end of file
+<?php get_footer(); // Loads the footer.php template. ?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/post-no-widgets.php b/wp-content/themes/hybrid/post-no-widgets.php
index 3347d8e6a..6e4edc802 100644
--- a/wp-content/themes/hybrid/post-no-widgets.php
+++ b/wp-content/themes/hybrid/post-no-widgets.php
@@ -8,43 +8,41 @@
  * @subpackage Template
  */
 
-get_header(); ?>
+get_header(); // Loads the header.php template. ?>
 
 	<div id="content" class="hfeed content">
 
-		<?php hybrid_before_content(); // Before content hook ?>
+		<?php do_atomic( 'before_content' ); // hybrid_before_content ?>
 
 		<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
 
 			<div id="post-<?php the_ID(); ?>" class="<?php hybrid_entry_class(); ?>">
 
-				<?php hybrid_before_entry(); // Before entry hook ?>
+				<?php do_atomic( 'before_entry' ); // hybrid_before_entry ?>
 
 				<div class="entry-content">
 					<?php the_content(); ?>
-					<?php wp_link_pages( array( 'before' => '<p class="page-links pages">' . __( 'Pages:', 'hybrid' ), 'after' => '</p>' ) ); ?>
+					<?php wp_link_pages( array( 'before' => '<p class="page-links pages">' . __( 'Pages:', hybrid_get_textdomain() ), 'after' => '</p>' ) ); ?>
 				</div><!-- .entry-content -->
 
-				<?php hybrid_after_entry(); // After entry hook ?>
+				<?php do_atomic( 'after_entry' ); // hybrid_after_entry ?>
 
 			</div><!-- .hentry -->
 
-			<?php hybrid_after_singular(); // After singular hook ?>
+			<?php do_atomic( 'after_singular' ); // hybrid_after_singular ?>
 
-			<?php comments_template( '/comments.php', true ); ?>
+			<?php comments_template( '/comments.php', true ); // Loads the comments.php template ?>
 
 			<?php endwhile; ?>
 
 		<?php else : ?>
 
-			<p class="no-data">
-				<?php _e( 'Apologies, but no results were found.', 'hybrid' ); ?>
-			</p><!-- .no-data -->
+			<?php get_template_part( 'loop-error' ); // Loads the loop-error.php template. ?>
 
 		<?php endif; ?>
 
-		<?php hybrid_after_content(); // After content hook ?>
+		<?php do_atomic( 'after_content' ); // hybrid_after_content ?>
 
 	</div><!-- .content .hfeed -->
 
-<?php get_footer(); ?>
\ No newline at end of file
+<?php get_footer(); // Loads the footer.php template. ?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/screenshot.png b/wp-content/themes/hybrid/screenshot.png
index 05b05f497b8590b8e275b81d5257fae50fbdfad1..dba6cd1516bf91880b77e23123c67caa5c497cf2 100644
GIT binary patch
literal 13244
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

literal 20764
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

diff --git a/wp-content/themes/hybrid/search.php b/wp-content/themes/hybrid/search.php
index ddd9bb482..63447aad6 100644
--- a/wp-content/themes/hybrid/search.php
+++ b/wp-content/themes/hybrid/search.php
@@ -9,35 +9,27 @@
  * @subpackage Template
  */
 
-get_header(); ?>
+get_header(); // Loads the header.php template. ?>
 
 	<div id="content" class="hfeed content">
 
-		<?php hybrid_before_content(); // Before content hook ?>
+		<?php do_atomic( 'before_content' ); // hybrid_before_content ?>
 
-		<div class="search-info">
-
-			<h1 class="search-title"><?php echo esc_attr( get_search_query() ); ?></h1>
-
-			<div class="search-description">
-				<p><?php printf( __( 'You are browsing the search results for &quot;%1$s&quot;', 'hybrid' ), esc_attr( get_search_query() ) ); ?></p>
-			</div><!-- .search-description -->
-
-		</div><!-- .search-info -->
+		<?php get_template_part( 'loop-meta' ); // Loads the loop-meta.php template. ?>
 
 		<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
 
 			<div id="post-<?php the_ID(); ?>" class="<?php hybrid_entry_class(); ?>">
 
-				<?php get_the_image( array( 'custom_key' => array( 'Thumbnail' ), 'size' => 'thumbnail' ) ); ?>
+				<?php get_the_image( array( 'meta_key' => 'Thumbnail', 'size' => 'thumbnail' ) ); ?>
 
-				<?php hybrid_before_entry(); // Before entry hook ?>
+				<?php do_atomic( 'before_entry' ); // hybrid_before_entry ?>
 
 				<div class="entry-summary">
 					<?php the_excerpt(); ?>
 				</div><!-- .entry-summary -->
 
-				<?php hybrid_after_entry(); // After entry hook ?>
+				<?php do_atomic( 'after_entry' ); // hybrid_after_entry ?>
 
 			</div><!-- .hentry -->
 
@@ -45,16 +37,12 @@ get_header(); ?>
 
 		<?php else: ?>
 
-			<p class="no-data">
-				<?php _e( 'Apologies, but no results were found.', 'hybrid' ); ?>
-			</p><!-- .no-data -->
-
-			<?php get_search_form(); ?>
+			<?php get_template_part( 'loop-error' ); // Loads the loop-error.php template. ?>
 
 		<?php endif; ?>
 
-		<?php hybrid_after_content(); // After content hook ?>
+		<?php do_atomic( 'after_content' ); // hybrid_after_content ?>
 
 	</div><!-- .content .hfeed -->
 
-<?php get_footer(); ?>
\ No newline at end of file
+<?php get_footer(); // Loads the footer.php template. ?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/searchform.php b/wp-content/themes/hybrid/searchform.php
index 825d5c24e..141c8deec 100644
--- a/wp-content/themes/hybrid/searchform.php
+++ b/wp-content/themes/hybrid/searchform.php
@@ -11,12 +11,12 @@
 	global $search_num;
 	++$search_num;
 ?>
-			<div id="search<?php if ( $search_num ) echo '-' . $search_num; ?>" class="search">
+			<div id="search<?php if ( $search_num ) echo "-{$search_num}"; ?>" class="search">
 
-				<form method="get" class="search-form" id="search-form<?php if ( $search_num ) echo '-' . $search_num; ?>" action="<?php echo home_url(); ?>/">
+				<form method="get" class="search-form" id="search-form<?php if ( $search_num ) echo "-{$search_num}"; ?>" action="<?php echo trailingslashit( home_url() ); ?>">
 				<div>
-					<input class="search-text" type="text" name="s" id="search-text<?php if ( $search_num)  echo '-' . $search_num; ?>" tabindex="7" value="<?php if ( is_search() ) echo esc_attr( get_search_query() ); else esc_attr_e( 'Search this site...', 'hybrid' ); ?>" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" />
-					<input class="search-submit button" name="submit" type="submit" id="search-submit<?php if ( $search_num ) echo '-' . $search_num; ?>" tabindex="8" value="<?php esc_attr_e( 'Search', 'hybrid' ); ?>" />
+					<input class="search-text" type="text" name="s" id="search-text<?php if ( $search_num)  echo "-{$search_num}"; ?>" value="<?php if ( is_search() ) echo esc_attr( get_search_query() ); else esc_attr_e( 'Search this site...', hybrid_get_textdomain() ); ?>" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" />
+					<input class="search-submit button" name="submit" type="submit" id="search-submit<?php if ( $search_num ) echo "-{$search_num}"; ?>" value="<?php esc_attr_e( 'Search', hybrid_get_textdomain() ); ?>" />
 				</div>
 				</form><!-- .search-form -->
 
diff --git a/wp-content/themes/hybrid/sidebar-after-content.php b/wp-content/themes/hybrid/sidebar-after-content.php
index f5a41e6b6..137136ce3 100644
--- a/wp-content/themes/hybrid/sidebar-after-content.php
+++ b/wp-content/themes/hybrid/sidebar-after-content.php
@@ -4,17 +4,17 @@
  *
  * The After Content sidebar template houses the HTML used for the 'Utility: After Content' 
  * sidebar. It will first check if the sidebar is active before displaying anything.
- * @link http://themehybrid.com/themes/hybrid/widget-areas
  *
  * @package Hybrid
  * @subpackage Template
+ * @link http://themehybrid.com/themes/hybrid/widget-areas
  */
 
-	if ( is_active_sidebar( 'utility-after-content' ) ) : ?>
+	if ( is_active_sidebar( 'after-content' ) ) : ?>
 
 		<div id="utility-after-content" class="sidebar utility">
 
-			<?php dynamic_sidebar( 'utility-after-content' ); ?>
+			<?php dynamic_sidebar( 'after-content' ); ?>
 
 		</div><!-- #utility-after-content .utility -->
 
diff --git a/wp-content/themes/hybrid/sidebar-after-singular.php b/wp-content/themes/hybrid/sidebar-after-singular.php
index d811f9d4b..6f31d1efe 100644
--- a/wp-content/themes/hybrid/sidebar-after-singular.php
+++ b/wp-content/themes/hybrid/sidebar-after-singular.php
@@ -4,17 +4,17 @@
  *
  * The After Singular sidebar template houses the HTML used for the 'Utility: After Singular' 
  * sidebar. It will first check if the sidebar is active before displaying anything.
- * @link http://themehybrid.com/themes/hybrid/widget-areas
  *
  * @package Hybrid
  * @subpackage Template
+ * @link http://themehybrid.com/themes/hybrid/widget-areas
  */
 
-	if ( is_active_sidebar( 'utility-after-singular' ) ) : ?>
+	if ( is_active_sidebar( 'after-singular' ) ) : ?>
 
 		<div id="utility-after-singular" class="sidebar utility">
 
-			<?php dynamic_sidebar( 'utility-after-singular' ); ?>
+			<?php dynamic_sidebar( 'after-singular' ); ?>
 
 		</div><!-- #utility-after-singular .utility -->
 
diff --git a/wp-content/themes/hybrid/sidebar-before-content.php b/wp-content/themes/hybrid/sidebar-before-content.php
index 78d02c73b..78a09a569 100644
--- a/wp-content/themes/hybrid/sidebar-before-content.php
+++ b/wp-content/themes/hybrid/sidebar-before-content.php
@@ -4,17 +4,17 @@
  *
  * The Before Content sidebar template houses the HTML used for the 'Utility: Before Content' 
  * sidebar. It will first check if the sidebar is active before displaying anything.
- * @link http://themehybrid.com/themes/hybrid/widget-areas
  *
  * @package Hybrid
  * @subpackage Template
+ * @link http://themehybrid.com/themes/hybrid/widget-areas
  */
 
-	if ( is_active_sidebar( 'utility-before-content' ) ) : ?>
+	if ( is_active_sidebar( 'before-content' ) ) : ?>
 
 		<div id="utility-before-content" class="sidebar utility">
 
-			<?php dynamic_sidebar( 'utility-before-content' ); ?>
+			<?php dynamic_sidebar( 'before-content' ); ?>
 
 		</div><!-- #utility-before-content .utility -->
 
diff --git a/wp-content/themes/hybrid/sidebar-primary.php b/wp-content/themes/hybrid/sidebar-primary.php
index 0edd1acde..8370602f3 100644
--- a/wp-content/themes/hybrid/sidebar-primary.php
+++ b/wp-content/themes/hybrid/sidebar-primary.php
@@ -4,21 +4,21 @@
  *
  * The Primary sidebar template houses the HTML used for the 'Primary' sidebar.
  * It will first check if the sidebar is active before displaying anything.
- * @link http://themehybrid.com/themes/hybrid/widget-areas
  *
  * @package Hybrid
  * @subpackage Template
+ * @link http://themehybrid.com/themes/hybrid/widget-areas
  */
 
 if ( is_active_sidebar( 'primary' ) ) : ?>
 
 	<div id="primary" class="sidebar aside">
 
-		<?php hybrid_before_primary(); // Before Primary hook ?>
+		<?php do_atomic( 'before_primary' ); // hybrid_before_primary ?>
 
 		<?php dynamic_sidebar( 'primary' ); ?>
 
-		<?php hybrid_after_primary(); // After Primary hook ?>
+		<?php do_atomic( 'after_primary' ); // hybrid_after_primary ?>
 
 	</div><!-- #primary .aside -->
 
diff --git a/wp-content/themes/hybrid/sidebar-secondary.php b/wp-content/themes/hybrid/sidebar-secondary.php
index fc39e4aa5..e66ac6135 100644
--- a/wp-content/themes/hybrid/sidebar-secondary.php
+++ b/wp-content/themes/hybrid/sidebar-secondary.php
@@ -4,21 +4,21 @@
  *
  * The Secondary sidebar template houses the HTML used for the 'Secondary' sidebar.
  * It will first check if the sidebar is active before displaying anything.
- * @link http://themehybrid.com/themes/hybrid/widget-areas
  *
  * @package Hybrid
  * @subpackage Template
+ * @link http://themehybrid.com/themes/hybrid/widget-areas
  */
 
 if ( is_active_sidebar( 'secondary' ) ) : ?>
 
 	<div id="secondary" class="sidebar aside">
 
-		<?php hybrid_before_secondary(); // Before Secondary hook ?>
+		<?php do_atomic( 'before_secondary' ); // hybrid_before_secondary ?>
 
 		<?php dynamic_sidebar( 'secondary' ); ?>
 
-		<?php hybrid_after_secondary(); // After Secondary hook ?>
+		<?php do_atomic( 'after_secondary' ); // hybrid_after_secondary ?>
 
 	</div><!-- #secondary .aside -->
 
diff --git a/wp-content/themes/hybrid/sidebar-subsidiary.php b/wp-content/themes/hybrid/sidebar-subsidiary.php
index 8cb2ec82d..f60b9631e 100644
--- a/wp-content/themes/hybrid/sidebar-subsidiary.php
+++ b/wp-content/themes/hybrid/sidebar-subsidiary.php
@@ -4,21 +4,21 @@
  *
  * The Subsidiary sidebar template houses the HTML used for the 'Subsidiary' sidebar.
  * It will first check if the sidebar is active before displaying anything.
- * @link http://themehybrid.com/themes/hybrid/widget-areas
  *
  * @package Hybrid
  * @subpackage Template
+ * @link http://themehybrid.com/themes/hybrid/widget-areas
  */
 
 if ( is_active_sidebar( 'subsidiary' ) ) : ?>
 
 	<div id="subsidiary" class="sidebar aside">
 
-		<?php hybrid_before_subsidiary(); // Before Subsidiary hook ?>
+		<?php do_atomic( 'before_subsidiary' ); // hybrid_before_subsidiary ?>
 
 		<?php dynamic_sidebar( 'subsidiary' ); ?>
 
-		<?php hybrid_after_subsidiary(); // After Subsidiary hook ?>
+		<?php do_atomic( 'after_subsidiary' ); // hybrid_after_subsidiary ?>
 
 	</div><!-- #subsidiary .aside -->
 
diff --git a/wp-content/themes/hybrid/singular.php b/wp-content/themes/hybrid/singular.php
index 1e2c07a98..2efdb0ce7 100644
--- a/wp-content/themes/hybrid/singular.php
+++ b/wp-content/themes/hybrid/singular.php
@@ -12,43 +12,41 @@
  * @subpackage Template
  */
 
-get_header(); ?>
+get_header(); // Loads the header.php template. ?>
 
 	<div id="content" class="hfeed content">
 
-		<?php hybrid_before_content(); // Before content hook ?>
+		<?php do_atomic( 'before_content' ); // hybrid_before_content ?>
 
 		<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
 
 			<div id="post-<?php the_ID(); ?>" class="<?php hybrid_entry_class(); ?>">
 
-				<?php hybrid_before_entry(); // Before entry hook ?>
+				<?php do_atomic( 'before_entry' ); // hybrid_before_entry ?>
 
 				<div class="entry-content">
 					<?php the_content(); ?>
-					<?php wp_link_pages( array( 'before' => '<p class="page-links pages">' . __( 'Pages:', 'hybrid' ), 'after' => '</p>' ) ); ?>
+					<?php wp_link_pages( array( 'before' => '<p class="page-links pages">' . __( 'Pages:', hybrid_get_textdomain() ), 'after' => '</p>' ) ); ?>
 				</div><!-- .entry-content -->
 
-				<?php hybrid_after_entry(); // After entry hook ?>
+				<?php do_atomic( 'after_entry' ); // hybrid_after_entry ?>
 
 			</div><!-- .hentry -->
 
-			<?php hybrid_after_singular(); // After singular hook ?>
+			<?php do_atomic( 'after_singular' ); // hybrid_after_singular ?>
 
-			<?php comments_template( '/comments.php', true ); ?>
+			<?php comments_template( '/comments.php', true ); // Loads the comments.php template ?>
 
 			<?php endwhile; ?>
 
 		<?php else : ?>
 
-			<p class="no-data">
-				<?php _e( 'Apologies, but no results were found.', 'hybrid' ); ?>
-			</p><!-- .no-data -->
+			<?php get_template_part( 'loop-error' ); // Loads the loop-error.php template. ?>
 
 		<?php endif; ?>
 
-		<?php hybrid_after_content(); // After content hook ?>
+		<?php do_atomic( 'after_content' ); // hybrid_after_content ?>
 
 	</div><!-- .content .hfeed -->
 
-<?php get_footer(); ?>
\ No newline at end of file
+<?php get_footer(); // Loads the footer.php template. ?>
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/style.css b/wp-content/themes/hybrid/style.css
index 196d11a71..4e9535ea5 100644
--- a/wp-content/themes/hybrid/style.css
+++ b/wp-content/themes/hybrid/style.css
@@ -1,45 +1,16 @@
 /**
  * Theme Name: Hybrid
  * Theme URI: http://themehybrid.com/themes/hybrid
- * Description: A user-friendly, search-engine optimized theme framework, featuring 15 custom page templates and multiple widget-ready areas, allowing you to create any type of site you want. 
- * Version: 0.8
+ * Description: A user-friendly, search-engine optimized parent theme, featuring 15 custom page templates and multiple widget-ready areas, allowing you to create any type of site you want. 
+ * Version: 1.0
  * Author: Justin Tadlock
  * Author URI: http://justintadlock.com
  * Tags: theme-options, threaded-comments, sticky-post, microformats, translation-ready, rtl-language-support, one-column, two-columns, three-columns, fixed-width
- * Status: publish
+ * License: GNU General Public License v2.0
+ * License URI: http://www.gnu.org/licenses/gpl-2.0.html
  *
- * Copyright (c) 2008 - 2010 Justin Tadlock.  All rights reserved.
+ * Copyright (c) 2008 - 2011 Justin Tadlock.  All rights reserved.
  * http://justintadlock.com
- *
- * Hybrid is released under the GNU General Public License, version 2 (GPL).
- * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  */
 
-/* Get base CSS */
-@import url('library/css/21px.css');
-
-/* Get layout CSS */
-@import url('library/css/2c-l-fixed.css');
-
-/* Get plugins CSS */
-@import url('library/css/plugins.css');
-
-/* Get drop-downs CSS */
-@import url('library/css/drop-downs.css');
-
-/* Get default CSS */
-@import url('library/css/screen.css');
-
-/* Make sure theme clears WP.org theme repository checklist */
-.alignright {}
-.alignleft {}
-.alignnone {}
-.aligncenter {}
-.avatar {}
-.wp-caption {}
-.gallery {}
-.wp-smiley {}
\ No newline at end of file
+html,body,div,span,object,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,tt,var,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video{margin:0;padding:0;vertical-align:baseline;outline:none;font-size:100%;background:transparent;border:none;text-decoration:none}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}b,i,hr,u,center,menu,layer,s,strike,font,xmp{margin:0;padding:0;vertical-align:baseline;outline:none;font-size:100%;font-weight:normal;font-style:normal;background:transparent;border:none;text-decoration:none}body{line-height:24px;font-family:Georgia,Times,"Times New Roman",serif;color:#333;background:#fff}h1,h2,h3,h4,h5,h6{font-style:normal;font-weight:normal;margin:0 0 21px 0}h1{font-size:1.8em}h2{font-size:1.7em}h3{font-size:1.55em}h4{font-size:1.4em}h5{font-size:1.25em}h6{font-size:1.1em}p{margin:0 0 21px 0}ol,ul{list-style:none}ul{list-style:disc;margin:0 0 21px 2.5em}ol{list-style-type:decimal;margin:0 0 21px 3em}ol ol{list-style:upper-roman}ol ol ol{list-style:lower-roman}ol ol ol ol{list-style:upper-alpha}ol ol ol ol ol{list-style:lower-alpha}ul ul,ol ol,ul ol,ol ul{margin-bottom:0}dl{margin:0 0 18px 3px}dl dt{font-weight:bold;margin:12px 0 0 0}dl dd{margin:6px 0 0 1.5em}strong{font-weight:bold}strong strong{font-weight:normal}em,cite{font-style:italic}em em,cite cite{font-style:normal}abbr{cursor:help}acronym{text-transform:uppercase;border-bottom:1px dashed #666;cursor:help}big{font-size:120%}small,sup,sub{font-size:80%}sup{vertical-align:baseline;position:relative;bottom:0.3em}sub{vertical-align:baseline;position:relative;top:0.3em}address{font-style:italic;margin:0 0 21px 0}li address,dd address{margin:0}blockquote{margin:0 2.5em;font-style:normal}blockquote em,blockquote cite{font-style:italic}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}a{cursor:pointer}a img{border:none}pre{overflow:auto;font:.9em Monaco,monospace,Courier,"Courier New";line-height:21px;margin-bottom:21px;padding:9px}code{font:.9em Monaco,monospace,Courier,"Courier New"}pre code{font-size:1em}ins,dfn{font-style:italic;text-decoration:none;border-bottom:1px solid #666}del,s,strike{text-decoration:line-through}object{margin-bottom:21px}input,textarea{font-size:1em;padding:3px}input[type="submit"]{cursor:pointer}:focus{outline:none}form label{cursor:pointer}option{padding:1px 3px}table{border-collapse:collapse;border-spacing:0;margin-bottom:21px}th,td{text-align:left}hr{height:1px;margin-bottom:21px;background:#333}img.wp-smiley{max-height:12px;margin:0;padding:0;border:none}.gallery{display:block;text-align:center;margin-bottom:21px}.alignleft,.left{float:left;margin-right:15px}.alignright,.right{float:right;margin-left:15px}.aligncenter,.center{display:block;margin:0 auto 21px auto}.alignnone,.block{clear:both;margin:0 0 21px 0}.clear{clear:both}img.alignleft,img.alignright{display:inline}blockquote.alignleft,blockquote.alignright{width:33%}#body-container{overflow:hidden;width:960px;margin:0 auto}#container{overflow:hidden;float:left;width:960px}.content{overflow:hidden;float:left;width:620px}.no-widgets .content,.no-default-widgets .content{width:960px}#primary{position:relative;float:right;width:300px}#secondary{position:relative;clear:right;float:right;width:300px}#subsidiary{overflow:hidden}#subsidiary .widget{overflow:hidden;float:left;width:300px;margin:0 20px 0 0}#footer-container{clear:both;overflow:hidden}#footer{clear:both;overflow:hidden}div.menu ul{margin:0;padding:0;list-style:none;line-height:1.0}div.menu ul ul{position:absolute;top:-999em;width:10em}div.menu ul ul li{width:100%}div.menu li:hover{visibility:inherit}div.menu li{float:left;position:relative}div.menu a{display:block;position:relative}div.menu li:hover ul,li.sfHover ul{left:0;top:2em;z-index:99}div.menu li:hover li ul,li.sfHover li ul{top:-999em}div.menu li li:hover ul,li li.sfHover ul{left:10em;top:0}div.menu li li:hover li ul,li li.sfHover li ul{top:-999em}div.menu li li li:hover ul,li li li.sfHover ul{left:10em;top:0}.gallery{display:block;clear:both;overflow:hidden;margin:0 auto}.gallery .gallery-row{display:block;clear:both;overflow:hidden;margin:0}.gallery .gallery-item{overflow:hidden;float:left;margin:0;text-align:center;list-style:none;padding:0}.gallery .gallery-item .gallery-icon img{width:auto;max-width:89%;height:auto;padding:1%;margin:0 auto}.gallery-caption{margin-left:0}.gallery .col-0{width:100%}.gallery .col-1{width:100%}.gallery .col-2{width:50%}.gallery .col-3{width:33.33%}.gallery .col-4{width:25%}.gallery .col-5{width:20%}.gallery .col-6{width:16.66%}.gallery .col-7{width:14.28%}.gallery .col-8{width:12.5%}.gallery .col-9{width:11.11%}.gallery .col-10{width:10%}.gallery .col-11{width:9.09%}.gallery .col-12{width:8.33%}.gallery .col-13{width:7.69%}.gallery .col-14{width:7.14%}.gallery .col-15{width:6.66%}.gallery .col-16{width:6.25%}.gallery .col-17{width:5.88%}.gallery .col-18{width:5.55%}.gallery .col-19{width:5.26%}.gallery .col-20{width:5%}.gallery .col-21{width:4.76%}.gallery .col-22{width:4.54%}.gallery .col-23{width:4.34%}.gallery .col-24{width:4.16%}.gallery .col-25{width:4%}.gallery .col-26{width:3.84%}.gallery .col-27{width:3.7%}.gallery .col-28{width:3.57%}.gallery .col-29{width:3.44%}.gallery .col-30{width:3.33%}.sticky,.bypostauthor{}body{font:normal normal normal 15px/21px Georgia,Times,"Times New Roman",serif;color:#000}#body-container{margin:90px auto 21px auto}a{color:#21759b;text-decoration:none}a:visited{color:#551a8b}a:hover,a:active{color:#d54e21;text-decoration:underline}h1,h2,h3,h4,h5,h6{font-family:Arial,Verdana,sans-serif;color:#000;font-weight:bold}h1{font-size:24px}h2{font-size:21px}h3{font-size:19px}h4{font-size:17px}h5{font-size:15px}h6{font-size:13px}ul{list-style:square}blockquote{font-style:italic;color:#555}blockquote blockquote{color:#777}blockquote em{font-style:normal}pre{padding:9px;background:#f9f9f9;border:1px solid #ccc}code{padding:0 3px;background:#eee}pre code{background:transparent}table{width:100%;border-collapse:separate;border-top:1px solid #ccc;border-left:1px solid #ccc}caption{font-size:.9em;font-style:italic;text-align:right}td,th{padding:3px 6px;border-bottom:1px solid #ccc;border-right:1px solid #ccc}th{background:#eee}.drop-cap{float:left;margin:3px 3px 0 0;font:normal normal normal 47px/35px "Warnock Pro","Goudy Old Style",Palatino,"Book Antiqua",Georgia,serif;color:#333}.note{padding:6px 9px;background:#eee;border:1px solid #ccc}.warning,.alert{padding:6px 9px;background:#fffbbc;border:1px solid #E6DB55}.error{padding:6px 9px;background:#ffebe8;border:1px solid #C00}.download{padding:6px 9px;background:#e7f7d3;border:1px solid #6c3}.breadcrumb{margin:0 0 30px 0;font-size:.9em;font-style:italic;color:#666}.breadcrumb a{color:#111;text-decoration:none}.breadcrumb a:hover{color:#d54e21;text-decoration:underline}.hentry img{max-width:610px;height:auto;padding:4px;border:1px solid #ccc}.no-widgets .hentry img{max-width:950px}img.alignleft,img.alignright{margin-bottom:10px}.thumbnail{float:left;width:100px;height:100px;margin:5px 15px 10px 0}img.wp-smiley{max-width:12px;padding:0;background:transparent;border:none}.wp-caption{max-width:616px;margin-top:6px;padding:6px 1px 3px 1px;border:1px solid #ccc;text-align:center}.wp-caption .wp-caption-text{margin:0;padding:0 5px;text-align:right;font-size:.9em;font-style:italic;color:#666}.wp-caption img{max-width:604px;margin:0 auto;padding:0;border:1px solid #666}.no-widgets .wp-caption{max-width:956px}.no-widgets .wp-caption img{max-width:946px}.gallery img{border:1px solid #ccc}.avatar{float:left;width:100px;height:100px;margin:5px 15px 0 0;padding:4px;border:1px solid #ccc}#header{margin:0 0 40px 0}#site-title{font:normal normal bold 35px/35px Arial,Verdana,sans-serif;margin:0 0 10px 0}#site-title a{color:#000}#site-description{font:normal normal normal 16px/20px Georgia,Times,"Times New Roman",serif;margin:0;color:#666}#primary-menu,#navigation{overflow:visible;height:34px;margin:0 0 60px 0;z-index:100}#primary-menu li,#page-nav li{margin-right:15px}#primary-menu li li,#page-nav li li{margin-right:0}#primary-menu li a,#page-nav li a{padding:8px 15px 8px 15px;color:#111;background:#fff;border:1px solid #ccc}#primary-menu li:hover ul,#primary-menu li.sfHover ul,#page-nav li:hover ul,#page-nav li.sfHover ul{top:32px}#primary-menu li li a,#page-nav li li a{border-top:none;margin-right:0}#primary-menu li ul,#page-nav li ul{background:#fff;border-top:1px solid #ccc}#primary-menu li li:hover ul,#primary-menu li li.sfHover ul,#primary-menu li li li:hover ul,#primary-menu li li li.sfHover ul,#page-nav li li:hover ul,#page-nav li li.sfHover ul,#page-nav li li li:hover ul,#page-nav li li li.sfHover ul {top:-1px}#primary-menu li li li,#page-nav li li li{margin-left:-1px}#container{margin-bottom:21px}.content{margin:0 0 21px 0}.no-widgets .content,.page-template-no-widgets .content{width:960px}.hentry{overflow:hidden;margin:0 0 40px 0}.singular .hentry{margin:0}.loop-meta{overflow:hidden;margin:0 0 40px 0}.loop-title{font:normal normal bold 24px/24px Arial,Verdana,sans-serif}.entry-title{font:normal normal bold 24px/24px Arial,Verdana,sans-serif;margin:0 0 12px 0}.archive .entry-title,.search .entry-title{font-size:21px;margin:0 0 5px 0}.singular-page .entry-title,.singular-attachment .entry-title{margin:0 0 21px 0}.entry-title a{color:#000}.byline{margin:0 0 30px 0;font-style:italic;color:#666}.archive .byline,.search .byline{margin:0 0 5px 0}.entry-content{margin:0 0 10px 0}.entry-meta{clear:both;font-style:italic;color:#666}p.page-links,.comment-pagination{clear:both}.comment-pagination{margin-bottom:21px}p.page-links a,.comment-pagination .page-numbers{margin:0 3px;padding:3px 9px 3px 9px;border:1px solid #ccc}.navigation-links{margin-bottom:21px;font-style:italic}.navigation-links .previous{float:left;max-width:50%}.navigation-links .next{float:right;max-width:50%;text-align:right}.navigation-attachment{overflow:hidden}.widget{overflow:hidden;margin:0 0 15px 0;color:#464646}.widget a{color:#464646;text-decoration:underline}.widget a:hover{color:#d54e21;text-decoration:none}.widget-title{font-size:18px;color:#111}#utility-before-content,#utility-after-content,#utility-after-page,#utility-after-single{margin:0 0 21px 0;padding:20px 20px 0 20px;border:1px solid #ccc}#comments-template{clear:both}.comments-header{font-size:1.2em}.comments-closed{font-style:italic}ol.comment-list,ol.comment-list ol.children{list-style:none;margin:0 0 21px 0}li.comment,li li li.comment,li li li li li.comment,li li li li li li li.comment,li li li li li li li li li.comment,li.pingback,li.trackback{overflow:hidden;margin:0 0 21px 0;padding:21px 21px 0 21px;background:#fff;border:1px solid #ccc}li li.comment,li li li li.comment,li li li li li li.comment,li li li li li li li li.comment,li li li li li li li li li li.comment{background:#f9f9f9}#comments-template .avatar{width:40px;height:40px;float:left;margin-right:15px;padding:0;border:1px solid #666}.comment-meta{margin:10px 0 21px 0;font-size:13px;color:#666}.comment-author{font-size:15px;color:#000}.comment-reply-link,.permalink,.comment-edit-link{font-style:italic;color:#666}.comment-text{clear:left;margin:0 15px}.text-input{display:block;padding:3px 6px;width:97%}#comments-template label{font-size:.9em}textarea{width:98%}#submit{display:inline-block;margin-right:15px;padding:7px 15px 8px 15px;background:#fff;border:1px solid #ccc}#submit:hover{cursor:pointer;background:#f9f9f9}#footer-container{clear:both;margin:0 0 21px 0}#subsidiary{margin:0 0 21px 0}#footer{font-style:italic;color:#444}#footer .copyright{display:inline;float:left;margin-right:9px}.content{float:left;width:620px}#primary{float:right;width:300px}#secondary{clear:right;float:right;width:300px}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/style.dev.css b/wp-content/themes/hybrid/style.dev.css
new file mode 100644
index 000000000..ea8746dde
--- /dev/null
+++ b/wp-content/themes/hybrid/style.dev.css
@@ -0,0 +1,561 @@
+/**
+ * Development stylesheet.  Use this file for development purposes by adding this to your 'wp-config.php' file:
+ * define( 'SCRIPT_DEBUG', true );
+ * This allows you to build large-sized stylesheets with plenty notes and comments. Before releasing, compress
+ * this file and replace the compressed CSS in the 'style.css' file.
+ * @link http://www.cssdrive.com/index.php/main/csscompressor
+ */
+
+/* Get base CSS */
+html,body,div,span,object,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,tt,var,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video{margin:0;padding:0;vertical-align:baseline;outline:none;font-size:100%;background:transparent;border:none;text-decoration:none}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}b,i,hr,u,center,menu,layer,s,strike,font,xmp{margin:0;padding:0;vertical-align:baseline;outline:none;font-size:100%;font-weight:normal;font-style:normal;background:transparent;border:none;text-decoration:none}body{line-height:24px;font-family:Georgia,Times,"Times New Roman",serif;color:#333;background:#fff}h1,h2,h3,h4,h5,h6{font-style:normal;font-weight:normal;margin:0 0 21px 0}h1{font-size:1.8em}h2{font-size:1.7em}h3{font-size:1.55em}h4{font-size:1.4em}h5{font-size:1.25em}h6{font-size:1.1em}p{margin:0 0 21px 0}ol,ul{list-style:none}ul{list-style:disc;margin:0 0 21px 2.5em}ol{list-style-type:decimal;margin:0 0 21px 3em}ol ol{list-style:upper-roman}ol ol ol{list-style:lower-roman}ol ol ol ol{list-style:upper-alpha}ol ol ol ol ol{list-style:lower-alpha}ul ul,ol ol,ul ol,ol ul{margin-bottom:0}dl{margin:0 0 18px 3px}dl dt{font-weight:bold;margin:12px 0 0 0}dl dd{margin:6px 0 0 1.5em}strong{font-weight:bold}strong strong{font-weight:normal}em,cite{font-style:italic}em em,cite cite{font-style:normal}abbr{cursor:help}acronym{text-transform:uppercase;border-bottom:1px dashed #666;cursor:help}big{font-size:120%}small,sup,sub{font-size:80%}sup{vertical-align:baseline;position:relative;bottom:0.3em}sub{vertical-align:baseline;position:relative;top:0.3em}address{font-style:italic;margin:0 0 21px 0}li address,dd address{margin:0}blockquote{margin:0 2.5em;font-style:normal}blockquote em,blockquote cite{font-style:italic}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}a{cursor:pointer}a img{border:none}pre{overflow:auto;font:.9em Monaco,monospace,Courier,"Courier New";line-height:21px;margin-bottom:21px;padding:9px}code{font:.9em Monaco,monospace,Courier,"Courier New"}pre code{font-size:1em}ins,dfn{font-style:italic;text-decoration:none;border-bottom:1px solid #666}del,s,strike{text-decoration:line-through}object{margin-bottom:21px}input,textarea{font-size:1em;padding:3px}input[type="submit"]{cursor:pointer}:focus{outline:none}form label{cursor:pointer}option{padding:1px 3px}table{border-collapse:collapse;border-spacing:0;margin-bottom:21px}th,td{text-align:left}hr{height:1px;margin-bottom:21px;background:#333}img.wp-smiley{max-height:12px;margin:0;padding:0;border:none}.gallery{display:block;text-align:center;margin-bottom:21px}.alignleft,.left{float:left;margin-right:15px}.alignright,.right{float:right;margin-left:15px}.aligncenter,.center{display:block;margin:0 auto 21px auto}.alignnone,.block{clear:both;margin:0 0 21px 0}.clear{clear:both}img.alignleft,img.alignright{display:inline}blockquote.alignleft,blockquote.alignright{width:33%}
+
+/* Get layout CSS */
+#body-container{overflow:hidden;width:960px;margin:0 auto}#container{overflow:hidden;float:left;width:960px}.content{overflow:hidden;float:left;width:620px}.no-widgets .content,.no-default-widgets .content{width:960px}#primary{position:relative;float:right;width:300px}#secondary{position:relative;clear:right;float:right;width:300px}#subsidiary{overflow:hidden}#subsidiary .widget{overflow:hidden;float:left;width:300px;margin:0 20px 0 0}#footer-container{clear:both;overflow:hidden}#footer{clear:both;overflow:hidden}
+
+/* Get drop-downs CSS */
+div.menu ul{margin:0;padding:0;list-style:none;line-height:1.0}div.menu ul ul{position:absolute;top:-999em;width:10em}div.menu ul ul li{width:100%}div.menu li:hover{visibility:inherit}div.menu li{float:left;position:relative}div.menu a{display:block;position:relative}div.menu li:hover ul,li.sfHover ul{left:0;top:2em;z-index:99}div.menu li:hover li ul,li.sfHover li ul{top:-999em}div.menu li li:hover ul,li li.sfHover ul{left:10em;top:0}div.menu li li:hover li ul,li li.sfHover li ul{top:-999em}div.menu li li li:hover ul,li li li.sfHover ul{left:10em;top:0}
+
+/* Get gallery CSS */
+.gallery{display:block;clear:both;overflow:hidden;margin:0 auto}.gallery .gallery-row{display:block;clear:both;overflow:hidden;margin:0}.gallery .gallery-item{overflow:hidden;float:left;margin:0;text-align:center;list-style:none;padding:0}.gallery .gallery-item .gallery-icon img{width:auto;max-width:89%;height:auto;padding:1%;margin:0 auto}.gallery-caption{margin-left:0}.gallery .col-0{width:100%}.gallery .col-1{width:100%}.gallery .col-2{width:50%}.gallery .col-3{width:33.33%}.gallery .col-4{width:25%}.gallery .col-5{width:20%}.gallery .col-6{width:16.66%}.gallery .col-7{width:14.28%}.gallery .col-8{width:12.5%}.gallery .col-9{width:11.11%}.gallery .col-10{width:10%}.gallery .col-11{width:9.09%}.gallery .col-12{width:8.33%}.gallery .col-13{width:7.69%}.gallery .col-14{width:7.14%}.gallery .col-15{width:6.66%}.gallery .col-16{width:6.25%}.gallery .col-17{width:5.88%}.gallery .col-18{width:5.55%}.gallery .col-19{width:5.26%}.gallery .col-20{width:5%}.gallery .col-21{width:4.76%}.gallery .col-22{width:4.54%}.gallery .col-23{width:4.34%}.gallery .col-24{width:4.16%}.gallery .col-25{width:4%}.gallery .col-26{width:3.84%}.gallery .col-27{width:3.7%}.gallery .col-28{width:3.57%}.gallery .col-29{width:3.44%}.gallery .col-30{width:3.33%}
+
+/* WP.org theme repository requirements. */
+.sticky, .bypostauthor {}
+
+/* Body */
+body {
+	font: normal normal normal 15px/21px Georgia, Times, "Times New Roman", serif;
+	color: #000;
+	}
+
+/* Body container */
+#body-container {
+	margin: 90px auto 21px auto;
+	}
+
+/* Links */
+a {
+	color: #21759b;
+	text-decoration: none;
+	}
+a:visited {
+	color: #551a8b;
+	}
+a:hover, a:active {
+	color: #d54e21;
+	text-decoration: underline;
+	}
+
+/* Headers */
+h1, h2, h3, h4, h5, h6 {
+	font-family: Arial, Verdana, sans-serif;
+	color: #000;
+	font-weight: bold;
+	}
+h1 { font-size: 24px; }
+h2 { font-size: 21px; }
+h3 { font-size: 19px; }
+h4 { font-size: 17px; }
+h5 { font-size: 15px; }
+h6 { font-size: 13px; }
+
+/* Lists */
+ul {
+	list-style: square;
+	}
+
+/* Blockquotes */
+blockquote {
+	font-style: italic;
+	color: #555;
+	}
+blockquote blockquote {
+	color: #777;
+	}
+blockquote em {
+	font-style: normal;
+	}
+
+/* Code */
+pre {
+	padding: 9px;
+	background: #f9f9f9;
+	border: 1px solid #ccc;
+	}
+code {
+	padding: 0 3px;
+	background: #eee;
+	}
+pre code {
+	background: transparent;
+	}
+
+/* Tables */
+table {
+	width: 100%;
+	border-collapse: separate;
+	border-top: 1px solid #ccc;
+	border-left: 1px solid #ccc;
+	}
+caption {
+	font-size: .9em;
+	font-style: italic;
+	text-align: right;
+	}
+td, th {
+	padding: 3px 6px;
+	border-bottom: 1px solid #ccc;
+	border-right: 1px solid #ccc;
+	}
+th {
+	background: #eee;
+	}
+
+/* Drop caps */
+.drop-cap {
+	float: left;
+	margin: 3px 3px 0 0;
+	font: normal normal normal 47px/35px "Warnock Pro", "Goudy Old Style", Palatino,"Book Antiqua", Georgia, serif;
+	color: #333;
+	}
+
+/* Notes */
+.note {
+	padding: 6px 9px;
+	background: #eee;
+	border: 1px solid #ccc;
+	}
+
+/* Warnings/Alerts */
+.warning, .alert {
+	padding: 6px 9px;
+	background: #fffbbc;
+	border: 1px solid #E6DB55;
+	}
+
+/* Errors */
+.error {
+	padding: 6px 9px;
+	background: #ffebe8;
+	border: 1px solid #C00;
+	}
+
+/* Downloads */
+.download {
+	padding: 6px 9px;
+	background: #e7f7d3;
+	border: 1px solid #6c3;
+	}
+
+/* Breadcrumb */
+.breadcrumb {
+	margin: 0 0 30px 0;
+	font-size: .9em;
+	font-style: italic;
+	color: #666;
+	}
+.breadcrumb a {
+	color: #111;
+	text-decoration: none;
+	}
+.breadcrumb a:hover {
+	color: #d54e21;
+	text-decoration: underline;
+	}
+
+/* Images */
+.hentry img {
+	max-width: 610px;
+	height: auto;
+	padding: 4px;
+	border: 1px solid #ccc;
+	}
+.no-widgets .hentry img {
+	max-width: 950px;
+	}
+img.alignleft, img.alignright {
+	margin-bottom: 10px;
+	}
+
+.thumbnail {
+	float: left;
+	width: 100px;
+	height: 100px;
+	margin: 5px 15px 10px 0;
+	}
+
+/* Smiley */
+img.wp-smiley {
+	max-width: 12px;
+	padding: 0;
+	background: transparent;
+	border: none;
+	}
+
+/* Captions [caption] */
+.wp-caption {
+	max-width: 616px;
+	margin-top: 6px;
+	padding: 6px 1px 3px 1px;
+	border: 1px solid #ccc;
+	text-align: center;
+	}
+.wp-caption .wp-caption-text {
+	margin: 0;
+	padding: 0 5px;
+	text-align: right;
+	font-size: .9em;
+	font-style: italic;
+	color: #666;
+	}
+.wp-caption img {
+	max-width: 604px;
+	margin: 0 auto;
+	padding: 0;
+	border: 1px solid #666;
+	}
+.no-widgets .wp-caption {
+	max-width: 956px;
+	}
+.no-widgets .wp-caption img {
+	max-width: 946px;
+	}
+
+/* Gallery [gallery] */
+.gallery img {
+	border: 1px solid #ccc;
+	}
+
+/* Avatars */
+.avatar {
+	float: left;
+	width: 100px;
+	height: 100px;
+	margin: 5px 15px 0 0;
+	padding: 4px;
+	border: 1px solid #ccc;
+	}
+
+/* Header */
+#header {
+	margin: 0 0 40px 0;
+	}
+
+/* Blog title */
+#site-title {
+	font: normal normal bold 35px/35px Arial, Verdana, sans-serif;
+	margin: 0 0 10px 0;
+	}
+#site-title a {
+	color: #000;
+	}
+
+/* Blog description */
+#site-description {
+	font: normal normal normal 16px/20px Georgia, Times, "Times New Roman", serif;
+	margin: 0;
+	color: #666;
+	}
+
+/* Navigation */
+#primary-menu, #navigation {
+	overflow: visible;
+	height: 34px;
+	margin: 0 0 60px 0;
+	z-index: 100;
+	}
+#primary-menu li, #page-nav li {
+	margin-right: 15px;
+	}
+#primary-menu li li, #page-nav li li {
+	margin-right: 0;
+	}
+#primary-menu li a, #page-nav li a {
+	padding: 8px 15px 8px 15px;
+	color: #111;
+	background: #fff;
+	border: 1px solid #ccc;
+	}
+
+/* Drop-downs style */
+#primary-menu li:hover ul, #primary-menu li.sfHover ul, #page-nav li:hover ul, #page-nav li.sfHover ul {
+	top: 32px;
+	}
+#primary-menu li li a, #page-nav li li a {
+	border-top: none;
+	margin-right: 0;
+	}
+#primary-menu li ul, #page-nav li ul {
+	background: #fff;
+	border-top: 1px solid #ccc;
+	}
+#primary-menu li li:hover ul, #primary-menu li li.sfHover ul, #primary-menu li li li:hover ul, #primary-menu li li li.sfHover ul, 
+#page-nav li li:hover ul, #page-nav li li.sfHover ul , #page-nav li li li:hover ul, #page-nav li li li.sfHover ul  {
+	top: -1px;
+	}
+#primary-menu li li li, #page-nav li li li {
+	margin-left: -1px;
+	}
+
+/* Container (wraps content, primary, and secondary) */
+#container {
+	margin-bottom: 21px;
+	}
+
+/* Main content */
+.content {
+	margin: 0 0 21px 0;
+	}
+.no-widgets .content, .page-template-no-widgets .content {
+	width: 960px;
+	}
+
+/* Posts */
+.hentry {
+	overflow: hidden;
+	margin: 0 0 40px 0;
+	}
+.singular .hentry {
+	margin: 0;
+	}
+
+/* Archive information */
+.loop-meta {
+	overflow: hidden;
+	margin: 0 0 40px 0;
+	}
+.loop-title {
+	font: normal normal bold 24px/24px Arial, Verdana, sans-serif;
+	}
+
+/* Entry title */
+.entry-title {
+	font: normal normal bold 24px/24px Arial, Verdana, sans-serif;
+	margin: 0 0 12px 0;
+	}
+.archive .entry-title, .search .entry-title {
+	font-size: 21px;
+	margin: 0 0 5px 0;
+	}
+.singular-page .entry-title, .singular-attachment .entry-title {
+	margin: 0 0 21px 0;
+	}
+.entry-title a {
+	color: #000;
+	}
+
+/* Byline */
+.byline {
+	margin: 0 0 30px 0;
+	font-style: italic;
+	color: #666;
+	}
+.archive .byline, .search .byline {
+	margin: 0 0 5px 0;
+	}
+
+/* Entry content */
+.entry-content {
+	margin: 0 0 10px 0;
+	}
+
+/* Entry metadata */
+.entry-meta {
+	clear: both;
+	font-style: italic;
+	color: #666;
+	}
+
+/* Page links (multiple-paged posts) */
+p.page-links, .comment-pagination {
+	clear: both;
+	}
+.comment-pagination {
+	margin-bottom: 21px;
+	}
+p.page-links a, .comment-pagination .page-numbers {
+	margin: 0 3px;
+	padding: 3px 9px 3px 9px;
+	border: 1px solid #ccc;
+	}
+
+/* Navigation links */
+.navigation-links {
+	margin-bottom: 21px;
+	font-style: italic;
+	}
+.navigation-links .previous {
+	float: left;
+	max-width: 50%;
+	}
+.navigation-links .next {
+	float: right;
+	max-width: 50%;
+	text-align: right;
+	}
+.navigation-attachment {
+	overflow: hidden;
+	}
+
+/* Widgets */
+.widget {
+	overflow: hidden;
+	margin: 0 0 15px 0;
+	color: #464646;
+	}
+.widget a {
+	color: #464646;
+	text-decoration: underline;
+	}
+.widget a:hover {
+	color: #d54e21;
+	text-decoration: none;
+	}
+
+/* Widget titles */
+.widget-title {
+	font-size: 18px;
+	color: #111;
+	}
+
+/* Utility widget areas */
+#utility-before-content, #utility-after-content, #utility-after-page, #utility-after-single {
+	margin: 0 0 21px 0;
+	padding: 20px 20px 0 20px;
+	border: 1px solid #ccc;
+	}
+
+/* Comments template */
+#comments-template {
+	clear: both;
+	}
+
+/* Comment headers */
+.comments-header {
+	font-size: 1.2em;
+	}
+
+/* Comments are closed */
+.comments-closed {
+	font-style: italic;
+	}
+
+/* Comment list */
+ol.comment-list, ol.comment-list ol.children {
+	list-style: none;
+	margin: 0 0 21px 0;
+	}
+li.comment, 
+li li li.comment, 
+li li li li li.comment, 
+li li li li li li li.comment, 
+li li li li li li li li li.comment, 
+li.pingback, li.trackback {
+	overflow: hidden;
+	margin: 0 0 21px 0;
+	padding: 21px 21px 0 21px;
+	background: #fff;
+	border: 1px solid #ccc;
+	}
+li li.comment, 
+li li li li.comment, 
+li li li li li li.comment, 
+li li li li li li li li.comment, 
+li li li li li li li li li li.comment {
+	background: #f9f9f9;
+	}
+
+/* Avatar */
+#comments-template .avatar {
+	width: 40px;
+	height: 40px;
+	float: left;
+	margin-right: 15px;
+	padding: 0;
+	border: 1px solid #666;
+	}
+
+/* Comment metadata */
+.comment-meta {
+	margin: 10px 0 21px 0;
+	font-size: 13px;
+	color: #666;
+	}
+.comment-author {
+	font-size: 15px;
+	color: #000;
+	}
+.comment-reply-link, .permalink, .comment-edit-link {
+	font-style: italic;
+	color: #666;
+	}
+
+/* Comment text */
+.comment-text {
+	clear: left;
+	margin: 0 15px;
+	}
+
+/* Form */
+.text-input {
+	display: block;
+	padding: 3px 6px;
+	width: 97%;
+	}
+#comments-template label {
+	font-size: .9em;
+	}
+
+/* Respond textarea */
+textarea {
+	width: 98%;
+	}
+
+/* Submit and rest buttons */
+#submit {
+	display: inline-block;
+	margin-right: 15px;
+	padding: 7px 15px 8px 15px;
+	background: #fff;
+	border: 1px solid #ccc;
+	}
+#submit:hover {
+	cursor: pointer;
+	background: #f9f9f9;
+	}
+
+/* Footer container */
+#footer-container {
+	clear: both;
+	margin: 0 0 21px 0;
+	}
+
+/* Subsidiary */
+#subsidiary {
+	margin: 0 0 21px 0;
+	}
+
+/* Footer */
+#footer {
+	font-style: italic;
+	color: #444;
+	}
+#footer .copyright {
+	display: inline;
+	float: left;
+	margin-right: 9px;
+	}
+
+/* Layout */
+.content {
+	float: left;
+	width: 620px;
+	}
+#primary {
+	float: right;
+	width: 300px;
+	}
+#secondary {
+	clear: right;
+	float: right;
+	width: 300px;
+	}
\ No newline at end of file
diff --git a/wp-content/themes/hybrid/taxonomy-link_category.php b/wp-content/themes/hybrid/taxonomy-link_category.php
index 7885a0dc0..d8caaeccd 100644
--- a/wp-content/themes/hybrid/taxonomy-link_category.php
+++ b/wp-content/themes/hybrid/taxonomy-link_category.php
@@ -9,29 +9,23 @@
  * @subpackage Template
  */
 
-get_header(); ?>
+get_header(); // Loads the header.php template. ?>
 
 	<div id="content" class="hfeed content">
 
-		<?php hybrid_before_content(); // Before content hook ?>
+		<?php do_atomic( 'before_content' ); // hybrid_before_content ?>
 
-		<div class="archive-info taxonomy-info">
-
-			<h1 class="archive-title taxonomy-title"><?php $term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) ); echo $term->name; ?></h1>
-
-			<div class="archive-description taxonomy-description">
-				<?php echo term_description( '', get_query_var( 'taxonomy' ) ); ?>
-			</div><!-- .archive-description -->
-
-		</div><!-- .archive-info -->
+		<?php get_template_part( 'loop-meta' ); // Loads the loop-meta.php template. ?>
 
 		<div class="<?php hybrid_entry_class(); ?>">
 
-			<?php hybrid_before_entry(); // Before entry hook ?>
+			<?php do_atomic( 'before_entry' ); // hybrid_before_entry ?>
 
 			<div class="entry-content">
 
-				<?php $args = array(
+				<?php $term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );
+
+				$args = array(
 					'title_li' => false,
 					'title_before' => false,
 					'title_after' => false,
@@ -50,12 +44,12 @@ get_header(); ?>
 
 			</div><!-- .entry-content -->
 
-			<?php hybrid_after_entry(); // After entry hook ?>
+			<?php do_atomic( 'after_entry' ); // hybrid_after_entry ?>
 
 		</div><!-- .hentry -->
 
-		<?php hybrid_after_content(); // After content hook ?>
+		<?php do_atomic( 'after_content' ); // hybrid_after_content ?>
 
 	</div><!-- .content .hfeed -->
 
-<?php get_footer(); ?>
\ No newline at end of file
+<?php get_footer(); // Loads the footer.php template. ?>
\ No newline at end of file
-- 
GitLab