diff --git a/honeypot.admin.inc b/honeypot.admin.inc
index 37bcba7..006b5d7 100644
--- a/honeypot.admin.inc
+++ b/honeypot.admin.inc
@@ -30,12 +30,30 @@ function honeypot_admin_form($form, &$form_state) {
     '#default_value' => variable_get('honeypot_log', 0),
   );
   $form['configuration']['honeypot_element_name'] = array(
-    '#type' => 'textfield',
+    '#type' => 'textarea',
     '#title' => t('Honeypot element name'),
-    '#description' => t("The name of the Honeypot form field. It's usually most effective to use a generic name like email, homepage, or name, but this should be changed if it interferes with fields that are already in your forms. Must not contain spaces or special characters."),
+    '#description' => t("The name of the Honeypot form field. It's usually most effective to use a generic name like email, homepage, or name, but this should be changed if it interferes with fields that are already in your forms. Must not contain spaces or special characters. Add multiple options separated by line breaks and Honeypot will randomize the element name to make it harder to detect."),
     '#default_value' => variable_get('honeypot_element_name', 'url'),
     '#required' => TRUE,
-    '#size' => 30,
+  );
+  $form['configuration']['honeypot_element_description'] = array(
+    '#type' => 'textarea',
+    '#title' => t('Honeypot element description'),
+    '#description' => t("Help text for screen readers that pick up the honeypot field. Add multiple options separated by line breaks and Honeypot will randomize the description to make it harder to detect"),
+    '#default_value' => variable_get('honeypot_element_description', 'Please leave this field blank.'),
+    '#required' => TRUE,
+  );
+  $form['configuration']['honeypot_element_randomize_placement'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Randomize Honeypot element placement'),
+    '#description' => t("Attempt to randomize placement of Honeypot element using form weight"),
+    '#default_value' => variable_get('honeypot_element_randomize_placement', 0),
+  );
+  $form['configuration']['honeypot_element_add_required_class'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Add required class to honey pot element'),
+    '#description' => t("Add the 'required' class to Honeypot element to try to fool spam bots. Note that this may break clientside form validation."),
+    '#default_value' => variable_get('honeypot_element_add_required_class', 0),
   );
   $form['configuration']['honeypot_time_limit'] = array(
     '#type' => 'textfield',
@@ -167,8 +185,11 @@ function honeypot_admin_form_validate($form, &$form_state) {
   }
 
   // Make sure Honeypot element name only contains A-Z, 0-9.
-  if (!preg_match("/^[-_a-zA-Z0-9]+$/", $form_state['values']['honeypot_element_name'])) {
-    form_set_error('honeypot_element_name', t("The element name cannot contain spaces or other special characters."));
+  $element_names = explode("\n", $form_state['values']['honeypot_element_name']);
+  foreach ($element_names as $name) {
+    if (!preg_match("/^[-_a-zA-Z0-9]+$/", trim($name))) {
+      form_set_error('honeypot_element_name', t("The element name cannot contain spaces or other special characters."));
+    }
   }
 }
 
diff --git a/honeypot.module b/honeypot.module
index bc0f4a2..4bdbd21 100644
--- a/honeypot.module
+++ b/honeypot.module
@@ -183,16 +183,68 @@ function honeypot_add_form_protection(&$form, &$form_state, $options = array())
   // Build the honeypot element.
   if (in_array('honeypot', $options)) {
     // Get the element name (default is generic 'url').
-    $honeypot_element = variable_get('honeypot_element_name', 'url');
+    $honeypot_elements = explode("\n", variable_get('honeypot_element_name', 'url'));
+
+    //if there's more than one element name option, randomize the name
+    if (count($honeypot_elements) > 1) {
+      $rand = rand(0, count($honeypot_elements) - 1);
+      $honeypot_element = trim($honeypot_elements[$rand]);
+    }
+    else {
+      $honeypot_element = trim($honeypot_elements[0]);
+    }
+
+    //Get the element description
+    $honeypot_descriptions = explode("\n", variable_get('honeypot_element_description', 'Please leave this field blank.'));
+
+    //if there's more than one description, randomize the description
+    if (count($honeypot_descriptions) > 1) {
+      $rand = rand(0, count($honeypot_descriptions) - 1);
+      $honeypot_description = trim($honeypot_descriptions[$rand]);
+    }
+    else {
+      $honeypot_description = trim($honeypot_descriptions[0]);
+    }
+
+    //Try to randomize element placement
+    if (variable_get('honeypot_element_randomize_placement', 0)) {
+      $weights = array(0);
+      $form_children = element_children($form);
+      foreach ($form_children as $key) {
+        $child_el = $form[$key];
+        //only get weights of displayed elements
+        if (!isset($child_el['$access']) || (isset($child_el['#access']) && $child_el['#access'] != FALSE)) {
+          $weight = 0;
+          if (isset($child_el['#weight'])) {
+            $weight = $child_el['#weight'];
+          }
+          //add unique weights to array
+          $weights[$weight] = $weight;
+        }
+      }
+      $weight_max = max($weights) + 1;
+      $weight_min = min($weights) - 1;
+      $element_weight = rand($weight_min, $weight_max);
+    }
+    else {
+      $element_weight = 100;
+    }
+
+    $element_classes = array();
+    //Add required class to form element to try to fool spam bots
+    if(variable_get('honeypot_element_add_required_class', 0)) {
+      $element_classes = array('required');
+    }
 
     // Build the honeypot element.
     $honeypot_class = $honeypot_element . '-textfield';
     $form[$honeypot_element] = array(
       '#type' => 'textfield',
-      '#title' => t('Leave this field blank'),
+      '#title' => $honeypot_description,
+      '#description' => $honeypot_description,
       '#size' => 20,
-      '#weight' => 100,
-      '#attributes' => array('autocomplete' => 'off'),
+      '#weight' => $element_weight,
+      '#attributes' => array('autocomplete' => 'off', 'class' => $element_classes),
       '#element_validate' => array('_honeypot_honeypot_validate'),
       '#prefix' => '<div class="' . $honeypot_class . '">',
       '#suffix' => '</div>',
