diff -u -r -N cvbuilder-cvs.orig/cvbuilder.install cvbuilder-cvs/cvbuilder.install
--- cvbuilder-cvs.orig/cvbuilder.install	1969-12-31 16:00:00.000000000 -0800
+++ cvbuilder-cvs/cvbuilder.install	2006-06-30 23:55:42.000000000 -0700
@@ -0,0 +1,90 @@
+<?php
+// $Id: wishlist.install,v 1.1.2.2 2006/06/09 20:33:36 smclewin Exp $
+
+/**
+ * Update the wishlist purchased table to allow us to track when
+ * A given item was purchased.
+ * 
+ * commented out in this batch of changes - kept here as part of a future
+ * set of work... 
+function wishlist_update_2() {
+   $items = array();
+   $items[] = update_sql("ALTER TABLE {wishlist_purchased} ADD new_col text");
+   return $items;
+}
+   
+ * 
+ * 
+ */
+
+
+/**
+ * 4.6 to 4.7 update per http://drupal.org/node/22218#utf8_sql
+ */
+function cvbuilder_update_1() {
+  return _system_update_utf8(array('cvbuilder_address', 'cvbuilder_experience', 'cvbuilder_schoolcollege', 'cvbuilder_referee', 'cvbuilder_skills'));
+}
+
+/**
+ * Build out the necessary tables for the wishlist module
+ */
+function cvbuilder_install() {
+	drupal_set_message('Installing cvbuilder');
+
+	switch($GLOBALS['db_type']) {
+		case 'mysql':
+		case 'mysqli':
+			db_query("
+				CREATE TABLE cvbuilder_address (
+					 nid int(10) unsigned NOT NULL default '0',
+					 address1 varchar(255) NOT NULL default '',
+					 address2 varchar(255) NOT NULL default '',
+					 town varchar(255) NOT NULL default '',
+					 county varchar(255) NOT NULL default '',
+					 postcode varchar(255) NOT NULL default '',
+					 phone varchar(255) NOT NULL default '',
+					 email varchar(255) NOT NULL default '',
+					 web varchar(255) NOT NULL default '',
+					 PRIMARY KEY (nid)
+				   );
+				CREATE TABLE cvbuilder_experience (
+					 nid int(10) unsigned NOT NULL default '0',
+					 employeraddress varchar(255) NOT NULL default '',
+					 jobtitle varchar(255) NOT NULL default '',
+					 startdate_month varchar(20) DEFAULT '',
+					 startdate_year varchar(4) DEFAULT '',
+					 enddate_month varchar(20) DEFAULT '',
+					 enddate_year varchar(4) DEFAULT '',
+					 duties MEDIUMTEXT NOT NULL default '',
+					 achievements MEDIUMTEXT NOT NULL default '',
+					 PRIMARY KEY (nid)
+				   );
+				CREATE TABLE cvbuilder_schoolcollege (
+					 nid int(10) unsigned NOT NULL default '0',
+					 startdate_month varchar(20) DEFAULT '',
+					 startdate_year varchar(4) DEFAULT '',
+					 enddate_month varchar(20) DEFAULT '',
+					 enddate_year varchar(4) DEFAULT '',
+					 address varchar(255) NOT NULL default '',
+					 quals MEDIUMTEXT NOT NULL default '',
+					 PRIMARY KEY (nid)
+				   );
+				CREATE TABLE cvbuilder_referee (
+					 nid int(10) unsigned NOT NULL default '0',
+					 position varchar(255) NOT NULL default '',
+					 address varchar(255) NOT NULL default '',
+					 relationship varchar(255) NOT NULL default '',
+					 maycontact int(1) NOT NULL default '0',
+					 PRIMARY KEY (nid)
+				   );
+				CREATE TABLE cvbuilder_skills (
+					 nid int(10) unsigned NOT NULL default '0',
+					 description MEDIUMTEXT NOT NULL default '',
+					 PRIMARY KEY (nid)
+				   );
+			");
+			break;
+	}
+}
+
+
diff -u -r -N cvbuilder-cvs.orig/cvbuilder.module cvbuilder-cvs/cvbuilder.module
--- cvbuilder-cvs.orig/cvbuilder.module	2006-05-20 18:01:46.000000000 -0700
+++ cvbuilder-cvs/cvbuilder.module	2006-07-14 13:38:56.000000000 -0700
@@ -79,6 +79,21 @@
   return array('cvbuilder_address','cvbuilder_experience', 'cvbuilder_schoolcollege', 'cvbuilder_skills', 'cvbuilder_referee');
 }
 
+/**
+ * node_info hook to return this module's name and description for cvbuilder nodes
+ *
+ * @return
+ *   Name of the node type created by this module
+ */
+function cvbuilder_node_info() {
+	return array(
+		'cvbuilder_address' => array('name' => 'cvbuilder_address', 'base' => 'cvbuilder_address'),
+		'cvbuilder_experience' => array('name' => 'cvbuilder_experience', 'base' => 'cvbuilder_experience'),
+		'cvbuilder_schoolcollege' => array('name' => 'cvbuilder_schoolcollege', 'base' => 'cvbuilder_schoolcollege'),
+		'cvbuilder_skills' => array('name' => 'cvbuilder_skills', 'base' => 'cvbuilder_skills'),
+		'cvbuilder_referee' => array('name' => 'cvbuilder_referee', 'base' => 'cvbuilder_referee')
+	);
+}
 
 /**
  * Implementation of hook_access().
@@ -251,14 +266,52 @@
     $output .= implode('', taxonomy_node_form('cvbuilder_referee', $node));
   }
 
+  	$form['title'] = array(
+	    '#type' => 'textfield',
+	    '#title' => t('Title'),
+	    '#default_value' => $node->title,
+	    '#size' => 60,
+	    '#maxlength' => 128,
+	    '#description' => NULL,
+		'#attributes' => NULL,
+		'#required' => TRUE,
+	);
+
+  
   // Now we define the form elements specific to our node type.
   // $output .= form_textarea(t('Body'), 'body', $node->body, 60, 20);
   // $output .= filter_form('format', $node->format);
-  $output .= form_textfield(t('Position'), 'position', $node->position, 60, 128, 'Enter a description for this referee.  For example: a former employer may be described as "Managing Director, The Widget Company Ltd."');
-  $output .= form_textfield(t('Contact details'), 'address', $node->address, 60, 128, 'Enter contact details for this referee. For example: "123 Fake Street, Springfield.  Tel: 020 0000 0000"');
-  $output .= form_textfield(t('Relationship to you'), 'relationship', $node->relationship, 60, 128, 'How do you know this referee?  Examples: "Previous employer","School teacher","College lecturer"');
-  $output .= form_checkbox(t('Tick this box if you don\'t mind employers contacting this referee without asking you first'), 'maycontact', 1, $node->maycontact);
-  return $output;
+	$form["position"] = array(
+		'#type' => 'textfield',
+		'#title' => t("Position"),
+		'#default_value' => $node->position,
+		'#size' => 60,
+		'#maxlength' => 128,
+		'#description' => t('Enter a description for this referee.  For example: a former employer may be described as "Managing Director, The Widget Company Ltd."'),
+	);
+	$form["address"] = array(
+		'#type' => 'textfield',
+		'#title' => t("Contact details"),
+		'#default_value' => $node->address,
+		'#size' => 60,
+		'#maxlength' => 128,
+		'#description' => t('Enter contact details for this referee. For example: "123 Fake Street, Springfield.  Tel: 020 0000 0000"'),
+	);
+	$form["relationship"] = array(
+		'#type' => 'textfield',
+		'#title' => t('Relationship to you'),
+		'#default_value' => $node->relationship,
+		'#size' => 60,
+		'#maxlength' => 128,
+		'#description' => t('How do you know this referee?  Examples: "Previous employer","School teacher","College lecturer"'),
+	);
+	$form["maycontact"] = array(
+		'#type' => 'checkbox',
+		'#title' => t('Tick this box if you don\'t mind employers contacting this referee without asking you first'),
+		'#return_value' => TRUE,
+		'#default_value' => $node->maycontact,
+	);
+  return $form;
 }
 
 function cvbuilder_skills_form(&$node) {
@@ -268,9 +321,27 @@
   if (function_exists('taxonomy_node_form')) {
     $output .= implode('', taxonomy_node_form('cvbuilder_skills', $node));
   }
+	$form['title'] = array(
+	    '#type' => 'textfield',
+	    '#title' => t('Title'),
+	    '#default_value' => $node->title,
+	    '#size' => 60,
+	    '#maxlength' => 128,
+	    '#description' => NULL,
+		'#attributes' => NULL,
+		'#required' => TRUE,
+	);
+
+  $form["description"] = array(
+    '#type' => 'textarea',
+    '#title' => t('Details'),
+    '#default_value' => $node->description,
+    '#cols' => 60,
+    '#rows' => 10,
+    '#description' => t("Enter details of these job skills in this box."),
+  );
 
-  $output .= form_textarea(t('Details'), 'description', $node->description, 60, 10, 'Enter details of these job skills in this box.');
-  return $output;
+  return $form;
 }
 
 function cvbuilder_schoolcollege_form(&$node) {
@@ -289,14 +360,64 @@
   if (function_exists('taxonomy_node_form')) {
     $output .= implode('', taxonomy_node_form('cvbuilder_referee', $node));
   }
+  	$form['title'] = array(
+	    '#type' => 'textfield',
+	    '#title' => t('Title'),
+	    '#default_value' => $node->title,
+	    '#size' => 60,
+	    '#maxlength' => 128,
+	    '#description' => NULL,
+		'#attributes' => NULL,
+		'#required' => TRUE,
+	);
+
+	$form["startdate_month"] = array(
+		'#type' => 'select',
+		'#title' => t('Start month'),
+		'#default_value' => $node->startdate_month,
+		'#options' => $months,
+	);
+
+    $form["startdate_year"] = array(
+		'#type' => 'select',
+		'#title' => t('Start year'),
+		'#default_value' => $node->startdate_year,
+		'#options' => $years,
+	);
+
+	$form["enddate_month"] = array(
+		'#type' => 'select',
+		'#title' => t('End month'),
+		'#default_value' => $node->enddate_month,
+		'#options' => $months,
+	);
+
+	$form["enddate_year"] = array(
+		'#type' => 'select',
+		'#title' => t('End year'),
+		'#default_value' => $node->enddate_year,
+		'#options' => $years,
+	);
+
+		$form["address"] = array(
+		'#type' => 'textfield',
+		'#title' => t('Address'),
+		'#default_value' => $node->address,
+		'#size' => 60,
+		'#maxlength' => 128,
+		'#description' => t('Tell us where this school or college is. For example: "Education Street, Anytown AN1 7OW"'),
+	);
+
+	$form["quals"] = array(
+		'#type' => 'textarea',
+		'#title' => t('Qualifications gained'),
+		'#default_value' => $node->quals,
+		'#cols' => 60,
+		'#rows' => 10,
+		'#description' => t("Describe what qualifications you acquired at this place of education."),
+	);
 
-  $output .= form_select(t('Start month'), 'startdate_month', $node->startdate_month, $months);
-  $output .= form_select(t('Start year'), 'startdate_year', $node->startdate_year, $years);
-  $output .= form_select(t('End month'), 'enddate_month', $node->enddate_month, $months);
-  $output .= form_select(t('End year'), 'enddate_year', $node->enddate_year, $years);
-  $output .= form_textfield(t('Address'), 'address', $node->address, 60, 128, 'Tell us where this school or college is. For example: "Education Street, Anytown AN1 7OW"');
-  $output .= form_textarea(t('Qualifications gained'), 'quals', $node->quals, 60, 10, 'Describe what qualifications you acquired at this place of education.');
-  return $output;
+  return $form;
 }
 
 function cvbuilder_address_form(&$node) {
@@ -306,16 +427,80 @@
   if (function_exists('taxonomy_node_form')) {
     $output .= implode('', taxonomy_node_form('cvbuilder_referee', $node));
   }
+
+	$form['title'] = array(
+	    '#type' => 'textfield',
+	    '#title' => t('Title'),
+	    '#default_value' => $node->title,
+	    '#size' => 60,
+	    '#maxlength' => 128,
+	    '#description' => NULL,
+		'#attributes' => NULL,
+		'#required' => TRUE,
+	);
   
-  $output .= form_textfield(t('Address line 1'), 'address1', $node->address1, 60, 255, 'Enter your address.');
-  $output .= form_textfield(t('Address line 2'), 'address2', $node->address2, 60, 255);
-  $output .= form_textfield(t('Town'), 'town', $node->town, 60, 255);
-  $output .= form_textfield(t('County'), 'county', $node->county, 60, 255);
-  $output .= form_textfield(t('Postcode'), 'postcode', $node->postcode, 20, 20);
-  $output .= form_textfield(t('Phone number'), 'phone', $node->phone, 20, 20, 'If you can be contacted by telephone, enter your contact phone number here.');
-  $output .= form_textfield(t('Email address'), 'email', $node->email, 20, 50, 'If you can be contacted by email, enter your email address here.');
-  $output .= form_textfield(t('Web site'), 'web', $node->web, 30, 255, 'If you have a web site you\'d like to include, enter the address here.');
-  return $output;
+	$form['address1'] = array(
+		'#type' => 'textfield',
+		'#title' => t('Address line 1'),
+		'#default_value' => $node->address1,
+		'#size' => 60,
+		'#maxlength' => 255,
+		'#description' => t('Enter your address.'),
+	);
+	$form['address2'] = array(
+		'#type' => 'textfield',
+		'#title' => t('Address line 2'),
+		'#default_value' => $node->address2,
+		'#size' => 60,
+		'#maxlength' => 255,
+	);
+	$form['town'] = array(
+		'#type' => 'textfield',
+		'#title' => t('Town'),
+		'#default_value' => $node->town,
+		'#size' => 60,
+		'#maxlength' => 255,
+	);
+	$form['county'] = array(
+		'#type' => 'textfield',
+		'#title' => t('County'),
+		'#default_value' => $node->county,
+		'#size' => 60,
+		'#maxlength' => 255,
+	);
+	$form['postcode'] = array(
+		'#type' => 'textfield',
+		'#title' => t('Postcode'),
+		'#default_value' => $node->postcode,
+		'#size' => 20,
+		'#maxlength' => 20,
+	);
+	$form['phone'] = array(
+		'#type' => 'textfield',
+		'#title' => t('Phone number'),
+		'#default_value' => $node->phone,
+		'#size' => 20,
+		'#maxlength' => 20,
+		'#description' => t('If you can be contacted by telephone, enter your contact phone number here.'),
+	);
+	$form['email'] = array(
+		'#type' => 'textfield',
+		'#title' => t('Email address'),
+		'#default_value' => $node->email,
+		'#size' => 20,
+		'#maxlength' => 50,
+		'#description' => t('If you can be contacted by email, enter your email address here.'),
+	);
+	$form['web'] = array(
+		'#type' => 'textfield',
+		'#title' => t('Web site'),
+		'#default_value' => $node->web,
+		'#size' => 30,
+		'#maxlength' => 255,
+		'#description' =>t('If you have a web site you\'d like to include, enter the address here.'),
+	);
+  
+  return $form;
 }
 
 function cvbuilder_experience_form(&$node) {
@@ -335,15 +520,72 @@
   if (function_exists('taxonomy_node_form')) {
     $output .= implode('', taxonomy_node_form('cvbuilder_experience', $node));
   }
+	$form['title'] = array(
+	    '#type' => 'textfield',
+	    '#title' => t('Job Title'),
+	    '#default_value' => $node->title,
+	    '#size' => 60,
+	    '#maxlength' => 128,
+	    '#description' => NULL,
+		'#attributes' => NULL,
+		'#required' => TRUE,
+	);
+	$form["startdate_month"] = array(
+		'#type' => 'select',
+		'#title' => t('Start month'),
+		'#default_value' => $node->startdate_month,
+		'#options' => $months,
+	);
+
+    $form["startdate_year"] = array(
+		'#type' => 'select',
+		'#title' => t('Start year'),
+		'#default_value' => $node->startdate_year,
+		'#options' => $years,
+	);
+
+	$form["enddate_month"] = array(
+		'#type' => 'select',
+		'#title' => t('End month'),
+		'#default_value' => $node->enddate_month,
+		'#options' => $months,
+	);
+
+	$form["enddate_year"] = array(
+		'#type' => 'select',
+		'#title' => t('End year'),
+		'#default_value' => $node->enddate_year,
+		'#options' => $years,
+	);
+
+	$form['employeraddress'] = array(
+	    '#type' => 'textfield',
+	    '#title' => t('Address'),
+	    '#default_value' => $node->employeraddress,
+	    '#size' => 60,
+	    '#maxlength' => 128,
+	    '#description' => t('Tell us where this employer is. For example: "Widget Street, Anytown AN1 7OW"'),
+	);
+	
+	$form["duties"] = array(
+		'#type' => 'textarea',
+		'#title' => t('Duties'),
+		'#default_value' => $node->duties,
+		'#cols' => 60,
+		'#rows' => 10,
+		'#description' => t("Describe what you did here, and what your responsibilities were."),
+	);
+
+	$form["achievements"] = array(
+		'#type' => 'textarea',
+		'#title' => t('Achievements'),
+		'#default_value' => $node->achievements,
+		'#cols' => 60,
+		'#rows' => 10,
+		'#description' => t("Use this space to say what you think you accomplished here, or what new things you learned."),
+	);
 
-  $output .= form_select(t('Start month'), 'startdate_month', $node->startdate_month, $months);
-  $output .= form_select(t('Start year'), 'startdate_year', $node->startdate_year, $years);
-  $output .= form_select(t('End month'), 'enddate_month', $node->enddate_month, $months);
-  $output .= form_select(t('End year'), 'enddate_year', $node->enddate_year, $years);
-  $output .= form_textfield(t('Address'), 'employeraddress', $node->employeraddress, 60, 128, 'Tell us where this employer is. For example: "Widget Street, Anytown AN1 7OW"');
-  $output .= form_textarea(t('Duties'), 'duties', $node->duties, 60, 10, 'Describe what you did here, and what your responsibilities were.');
-  $output .= form_textarea(t('Achievements'), 'achievements', $node->achievements, 60, 10, 'Use this space to say what you think you accomplished here, or what new things you learned.');
-  return $output;
+  return $form;
 }
 
 
