diff --git a/video_embed_field.api.php b/video_embed_field.api.php
index 667e154..b851b22 100755
--- a/video_embed_field.api.php
+++ b/video_embed_field.api.php
@@ -1,39 +1,21 @@
 <?php
 
 /**
- * @file
- * Hooks provided by the Video Embed Field module.
+ * API Info for video_embed_field module
  */
 
 /**
- * Define a video handler that decodes a video provider URL into a video player or thumbnail
- * 
- * You can define a handler like this:
- *
- * @code
- *   $handler['vimeo'] = array(
- *     'title' => 'Vimeo',
- *     'function' => 'vimeo_handler',
- *     'thumbnail_function' => 'vimeo_thumbnail',
- *     'form' => 'vimeo_form',
- *     'domains' => array(
- *       'vimeo.com'
- *     ),
- *     'defaults' => array(
- *        'width' => 640,
- *        'height' => 360',
- *     ),
- *   );
- * @endcode
- *
- * @return
- *   Embed handlers:
- *   - "title": The name of the handler - will be wrapped with t().
- *   - "function": Function to return embed code from a URL and video style array.
- *   - "thumbnail_function": Function to return a video frame image.
- *   - "form": Function to create a settings form (optional).
- *   - "domains": Array of domains this handler will created embed codes for
- *   - "defaults": Array of default settings.
+ * Creates a hook that other modules can implement to get handlers - 
+ * hook_video_embed_handler_info
+ * Can be used to add more handlers if needed - from other modules and such
+ * Handler should be an array of the form
+ * array(
+ *   'title' => 'Title', //The title of the handler - to be used as the field group header - will be wrapped with t()
+ *   'function' => 'function_name_to_call', //should be of the signature function_name($url, $settings) and should return the embed code
+ *   'form' => 'function_name_for_form', //function to create settings form (optional)
+ *   'domains' => array('youtube.com'), //the domains that this handler will create embed code for
+ *   'defaults' => array(), //The default settings for the module, used for both the form and the callback function
+ * );
  */
 function hook_video_embed_handler_info() {
 
diff --git a/video_embed_field.field.inc b/video_embed_field.field.inc
index 59d8318..adbff08 100644
--- a/video_embed_field.field.inc
+++ b/video_embed_field.field.inc
@@ -139,10 +139,10 @@ function video_embed_field_field_presave($entity_type, $entity, $field, $instanc
   foreach($items as $delta => $item){
   
     $info = video_embed_field_thumbnail_url($item['video_url']);
-
+    
     if (isset($info['url']) && $info['url']) {
       $thumb_url = $info['url'];
-      
+
       $local_path = 'public://video_embed_field_thumbnails/' . $info['handler'] . '/' . $info['id'] . '.jpg';
       if (!file_exists($local_path)) {
         $dirname = drupal_dirname($local_path);
@@ -169,7 +169,7 @@ function video_embed_field_field_is_empty($item, $field){
  * Implements hook_field_formatter_info().
  */
 function video_embed_field_field_formatter_info() {
-  return array(
+  $info = array(
     'video_embed_field' => array(
       'label' => t('Video Player'),
       'field types' => array('video_embed_field'),
@@ -181,6 +181,14 @@ function video_embed_field_field_formatter_info() {
       'settings' => array('image_style' => 'none', 'description' => 1),
     ),
   );
+  if( module_exists('colorbox')  ) {
+    $info['video_embed_field_thumbnail_colorbox'] = array(
+      'label' => t('Thumbnail Preview w/Colorbox'),
+      'field types' => array('video_embed_field'),
+      'settings' => array('video_style' => 'normal', 'image_style' => 'none', 'description' => 1),
+    );
+  }
+  return $info;
 }
 
 /**
@@ -191,7 +199,7 @@ function video_embed_field_field_formatter_settings_form($field, $instance, $vie
   $settings = $display['settings'];
   $element = array();
   
-  if ($display['type'] == 'video_embed_field') {
+  if ($display['type'] == 'video_embed_field' || $display['type'] == 'video_embed_field_thumbnail_colorbox') {
     $video_styles = video_embed_field_video_style_options(FALSE);
     $element['video_style'] = array(
       '#title' => t('Video style'),
@@ -200,7 +208,7 @@ function video_embed_field_field_formatter_settings_form($field, $instance, $vie
       '#options' => $video_styles,
     );
   } 
-  else if ($display['type'] == 'video_embed_field_thumbnail') {
+  if ($display['type'] == 'video_embed_field_thumbnail' || $display['type'] == 'video_embed_field_thumbnail_colorbox') {
     $element['image_style'] = array(
       '#title' => t('Image style'),
       '#type' => 'select',
@@ -229,7 +237,7 @@ function video_embed_field_field_formatter_settings_summary($field, $instance, $
   $settings = $display['settings'];
 
   $summary = array();
-  if($display['type'] == 'video_embed_field'){
+  if($display['type'] == 'video_embed_field' || $display['type'] == 'video_embed_field_thumbnail_colorbox'){
     $video_styles = video_embed_field_video_style_options(FALSE);
     // Styles could be lost because of enabled/disabled modules that defines
     // their styles in code.
@@ -237,7 +245,7 @@ function video_embed_field_field_formatter_settings_summary($field, $instance, $
       $summary[] = t('Video style: @style', array('@style' => $video_styles[$settings['video_style']]));
     }
   } 
-  else if ($display['type'] == 'video_embed_field_thumbnail') {
+  if ($display['type'] == 'video_embed_field_thumbnail' || $display['type'] == 'video_embed_field_thumbnail_colorbox') {
     $image_styles = image_style_options(FALSE);
     if (isset($image_styles[$settings['image_style']])) {
       $summary[] = t('Image style: @style', array('@style' => $image_styles[$settings['image_style']]));
@@ -262,7 +270,7 @@ function video_embed_field_field_formatter_view($entity_type, $entity, $field, $
   
   foreach ($items as $delta => $item) {
     //create the render array for the description
-    if (!empty($item['description']) && $display['settings']['description'] && $instance['settings']['description_field']) {
+    if (isset($item['description']) && $item['description'] && $display['settings']['description'] && $instance['settings']['description_field']) {
       $description = array(
         '#prefix' => '<div class="video-embed-description">',
         '#markup' => $item['description'],
@@ -284,33 +292,43 @@ function video_embed_field_field_formatter_view($entity_type, $entity, $field, $
       );
     }
     else if ($display['type'] == 'video_embed_field_thumbnail') {
-      $image_style = $display['settings']['image_style'];
-      if (isset($item['thumbnail_path']) && ($image_style == 'none' || $image_style == '')) {
+
+      if (isset($item['thumbnail_path'])) {
         $element[$delta] = array(
           array(
-            '#theme' => 'image',
+            '#theme' => 'image_style',
             '#path' => $item['thumbnail_path'],
+            '#style_name' => $display['settings']['image_style'],
           ),
           $description,
-        );  
-      }
-      else if (isset($item['thumbnail_path'])) {
+        );      
+      } //incase no thumbnail was downloaded / provider doesn't support thumbnails
+      else {
         $element[$delta] = array(
+          $description,
+        );    
+      }
+    }
+    else if ($display['type'] == 'video_embed_field_thumbnail_colorbox') {
+      if (isset($item['thumbnail_path'])) {
+        $element[$delta] = array(          
           array(
-            '#theme' => 'image_style',
-            '#path' => $item['thumbnail_path'],
-            '#style_name' => $image_style,
+            '#theme' => 'video_embed_field_colorbox_code',
+            '#image_url' => $item['thumbnail_path'],
+            '#image_style' => $display['settings']['image_style'],
+            '#video_url' => $item['video_url'],
+            '#video_style' => $display['settings']['video_style'],
           ),
           $description,
-        );
+        );      
       } //incase no thumbnail was downloaded / provider doesn't support thumbnails
       else {
         $element[$delta] = array(
           $description,
         );    
       }
-    }
+    } 
   }
 
   return $element;
-}
\ No newline at end of file
+}
diff --git a/video_embed_field.handlers.inc b/video_embed_field.handlers.inc
index 417e02c..91cffe2 100755
--- a/video_embed_field.handlers.inc
+++ b/video_embed_field.handlers.inc
@@ -107,7 +107,7 @@ function video_embed_field_handle_youtube($url, $settings) {
   $settings['wmode'] = 'opaque';
   $settings_str = _video_embed_code_get_settings_str($settings);
   
-  $output['#markup'] = '<iframe style="width:' . $settings['width'] . 'px; height:' . $settings['height'] . 'px;" src="http://www.youtube.com/embed/' . $id . '?' . $settings_str . '" frameborder="0" allowfullscreen></iframe>';
+  $output['#markup'] = '<iframe width="' . $settings['width'] . '" height="' . $settings['height'] . '" src="http://www.youtube.com/embed/' . $id . '?' . $settings_str . '" frameborder="0" allowfullscreen></iframe>';
   
   return $output;
 }
@@ -215,7 +215,7 @@ function video_embed_field_handle_vimeo($url, $settings) {
   $settings['portrait'] = 0;
   $settings_str = _video_embed_code_get_settings_str($settings);
   
-  $output['#markup'] = '<iframe style="width:' . $settings['width'] . 'px; height:' . $settings['height'] . 'px;" src="http://player.vimeo.com/video/' . $id . '?' . $settings_str . '" frameborder="0" allowfullscreen></iframe>';
+  $output['#markup'] = '<iframe width="' . $settings['width'] . '" height="' . $settings['height'] . '" src="http://player.vimeo.com/video/' . $id . '?' . $settings_str . '" frameborder="0" allowfullscreen></iframe>';
   
   return $output;
 }
diff --git a/video_embed_field.info b/video_embed_field.info
old mode 100755
new mode 100644
index 4484a14..727faf4
--- a/video_embed_field.info
+++ b/video_embed_field.info
@@ -5,4 +5,10 @@ package = Media
 configure = admin/config/media/vef_video_styles
 
 dependencies[] = ctools
-dependencies[] = image
\ No newline at end of file
+dependencies[] = image
+; Information added by drupal.org packaging script on 2011-11-07
+version = "7.x-2.x-dev"
+core = "7.x"
+project = "video_embed_field"
+datestamp = "1320625938"
+
diff --git a/video_embed_field.module b/video_embed_field.module
index b2f0257..94f477c 100755
--- a/video_embed_field.module
+++ b/video_embed_field.module
@@ -149,9 +149,16 @@ function video_embed_field_permission() {
  */
 function video_embed_field_theme() {
   return array(
+    // Theme functions in video_embed_field.admin.inc.
+    'video_embed_field_video_style_list' => array(
+      'variables' => array('styles' => NULL),
+    ),
     'video_embed_field_embed_code' => array(
       'variables' => array('url' => NULL, 'style' => 'normal'),
     ),
+    'video_embed_field_colorbox_code' => array(
+      'variables' => array('image_url' => NULL, 'image_style' => 'normal', 'video_url' => NULL, 'video_style' => NULL ),
+    ),
   );
 }
 
@@ -319,12 +326,48 @@ function theme_video_embed_field_embed_code($variables) {
   if ($handler && isset($handler['function']) && function_exists($handler['function'])) {
     $output['embed_code'] = call_user_func($handler['function'], $url, $style->data[$handler['name']]);
   } else {
-    $output['#markup'] = l($item['video_url'], $item['video_url']);
+    $output['#markup'] = l($variables['url'], $variables['url']);
   }
   
   return drupal_render($output);
 }
+/**
+ * Returns image style image with a link to 
+ * an embedded video in colorbox.
+ *
+ * @param $variables
+ *   An associative array containing:
+ *   - image_url: The image URL.
+ *   - image_style: The image style to use.
+ *   - video_url: The video URL.
+ *   - video_style: The video style to use.
+ *
+ * @ingroup themeable
+ */
+function theme_video_embed_field_colorbox_code($variables) {
+  $output = array();
+
+  $style = video_embed_field_video_style_load($variables['video_style']);
+
+  // If there was an issue load in the default style
+  if ($style == FALSE) {
+    $style = video_embed_field_video_style_load('normal');
+  }
+
+  $handler = video_embed_get_handler($variables['video_url']);
+
+  $data = $style->data[$handler['name']];
+
+  //Create a unique ID for colorbox inline
+  $id = 'video-embed-field-' . uniqid('video_embed_field');
+
+  $image = theme('image_style', array('path' => $variables['image_url'], 'style_name' => $variables['image_style']));
+  $video = '<div style="display: none"><div id="' . $id .'">' . theme('video_embed_field_embed_code', array('style' => $variables['video_style'], 'url' => $variables['video_url'])) . '</div></div>';
 
+  $output['#markup'] = l($image . $video, "?width=" . ($data['width']+5) . "&height=" . ($data['height']+20) . "&inline=true#" . $id , array('html' => true, 'external' => true, 'attributes' => array('class' => array('colorbox-load', 'colorbox-inline'))));  
+
+  return drupal_render($output);
+}
 /**
  *  Get the thumbnail url for a given video url
  *  @param $url - the url of the video
@@ -369,4 +412,9 @@ function _video_embed_code_get_settings_str($settings = array()) {
   }
   
   return implode('&amp;', $values);
-}
\ No newline at end of file
+}
+
+//used to array filter in video_embed_field_requirements
+function _video_embed_field_array_filter($item) {
+  return (isset($item['type']) && $item['type'] == 'video_embed_field');
+}
