diff --git a/artemis_sqlmap/Cvterm.xml b/artemis_sqlmap/Cvterm.xml
index 87c6694c5d0d6c9b76947e74e7a79b0be01f3cef..0fe20fb9b7338c9eac9650a0e20ca10687fc9ff7 100644
--- a/artemis_sqlmap/Cvterm.xml
+++ b/artemis_sqlmap/Cvterm.xml
@@ -7,13 +7,13 @@
 
 <sqlMap namespace="Cvterm"> 
  
-    <resultMap id="select-cvterm-names-result" class="uk.ac.sanger.artemis.chado.ChadoCvterm">
+    <resultMap id="select-cvterm-names-result" class="uk.ac.sanger.artemis.chado.Cvterm">
    	  <result property="cvtermId" column="cvterm_id"/>
   	  <result property="name" column="cvterm_name"/>
       <result property="cv.name" column="cv_name"/>
     </resultMap>
     
-    <resultMap id="lazy-cvterm" class="uk.ac.sanger.artemis.chado.ChadoCvterm">
+    <resultMap id="lazy-cvterm" class="uk.ac.sanger.artemis.chado.Cvterm">
    	  <result property="cvtermId" column="cvterm_id"/>
   	  <result property="name" column="name"/>
       <result property="definition" column="definition"/>
diff --git a/artemis_sqlmap/Dbxref.xml b/artemis_sqlmap/Dbxref.xml
index a9e4924bc3ff5c22c72cef03460b31c1a497cadc..b2da012b28745336f7f41c049a5619acc0f3a5a5 100644
--- a/artemis_sqlmap/Dbxref.xml
+++ b/artemis_sqlmap/Dbxref.xml
@@ -7,17 +7,17 @@
 
 <sqlMap namespace="Dbxref"> 
  
-  <typeAlias alias="ChadoFeatureDbxref"
-        type="uk.ac.sanger.artemis.chado.ChadoFeatureDbxref"/>
+  <typeAlias alias="FeatureDbxref"
+        type="uk.ac.sanger.artemis.chado.FeatureDbxref"/>
   
-  <typeAlias alias="ChadoDbxref"
-        type="uk.ac.sanger.artemis.chado.ChadoDbxref"/>
+  <typeAlias alias="Dbxref"
+        type="uk.ac.sanger.artemis.chado.Dbxref"/>
   
-    <typeAlias alias="ChadoDb"
-        type="uk.ac.sanger.artemis.chado.ChadoDb"/>
+    <typeAlias alias="Db"
+        type="uk.ac.sanger.artemis.chado.Db"/>
            
   <resultMap id="select-feature-dbxref" 
-               class="ChadoFeatureDbxref">
+               class="FeatureDbxref">
     <result property="feature_id"       column="feature_id"/>
     <result property="dbxref.db.name"   column="name"/>
     <result property="dbxref.accession" column="accession"/>
@@ -25,7 +25,7 @@
   </resultMap>
         
   <select id="getFeatureDbxref" 
-          parameterClass="uk.ac.sanger.artemis.chado.ChadoFeature"
+          parameterClass="uk.ac.sanger.artemis.chado.Feature"
           resultMap="select-feature-dbxref">
    	SELECT db.name, dbx.accession, dbx.version, dbx_f.feature_id
  	FROM feature_dbxref dbx_f 
@@ -41,12 +41,12 @@
         ORDER BY f.type_id,  uniquename
   </select> 
   
-  <select id="getDbId" parameterClass="ChadoDb"
+  <select id="getDbId" parameterClass="Db"
                        resultClass="java.lang.Integer">
     SELECT db_id FROM db WHERE name=#name#
   </select>
   
-  <select id="getDbxrefId" parameterClass="ChadoDbxref"
+  <select id="getDbxrefId" parameterClass="Dbxref"
                            resultClass="java.lang.Integer">
     SELECT dbxref_id FROM dbxref WHERE accession=#accession#
            AND db_id=$db_id$;
@@ -54,14 +54,14 @@
   
   
   
-  <select id="selectDbxref" resultClass="ChadoDbxref">
+  <select id="selectDbxref" resultClass="Dbxref">
     SELECT * FROM dbxref WHERE dbxref_id=$dbxref_id$
   </select>
   
   
   
   <!-- WRITE BACK -->
-  <delete id="deleteFeatureDbxref" parameterClass="ChadoFeatureDbxref">
+  <delete id="deleteFeatureDbxref" parameterClass="FeatureDbxref">
      DELETE FROM feature_dbxref 
      WHERE dbxref_id=
            (SELECT dbxref_id FROM dbxref WHERE accession=#dbxref.accession#
@@ -69,14 +69,14 @@
      AND feature_id=$feature_id$
   </delete>
   
-  <insert id="insertFeatureDbxref" parameterClass="ChadoFeatureDbxref">
+  <insert id="insertFeatureDbxref" parameterClass="FeatureDbxref">
     INSERT INTO feature_dbxref 
            (feature_id, dbxref_id, is_current)
            VALUES
            ($feature_id$, $dbxref_id$, $current$)
   </insert>
   
-  <insert id="insertDbxref" parameterClass="ChadoDbxref">
+  <insert id="insertDbxref" parameterClass="Dbxref">
     INSERT INTO dbxref ( db_id, accession ) 
            VALUES ($db_id$, #accession#)
   </insert>
diff --git a/artemis_sqlmap/Feature.xml b/artemis_sqlmap/Feature.xml
index 0ab5a1ccbfb5a281e06ded6bf49a56a3f9f25613..337577809e290d2955dd03231c94f6bc6c867bbe 100644
--- a/artemis_sqlmap/Feature.xml
+++ b/artemis_sqlmap/Feature.xml
@@ -7,20 +7,20 @@
 
 <sqlMap namespace="Feature"> 
  
-     <typeAlias alias="ChadoFeature"
-        type="uk.ac.sanger.artemis.chado.ChadoFeature"/>
+     <typeAlias alias="Feature"
+        type="uk.ac.sanger.artemis.chado.Feature"/>
         
      <typeAlias alias="ChadoTransaction"
         type="uk.ac.sanger.artemis.chado.ChadoTransaction"/>
      
     <parameterMap id="schema-cvlist" 
-                  class="ChadoFeature">
+                  class="Feature">
        <parameter property="schema" javaType="java.lang.String"/>
        <parameter property="featureCvterms" javaType="java.util.List"/>
     </parameterMap> 
 
     <resultMap id="select-feature" 
-               class="ChadoFeature">
+               class="Feature">
         <result property="timelastmodified" column="timelastmodified"/>
    	    <result property="id" column="id"/>
   	    <result property="feature_relationship.object_id" column="object_id"/>
@@ -40,7 +40,7 @@
     <!-- mapping for feature table and lazy loading of feature_dbxref, feature_relationship,
          featureprop, organism tables -->
     <resultMap id="select-feature-lazy" 
-               class="ChadoFeature">       
+               class="Feature">       
         <result property="timelastmodified" column="timelastmodified"/>
    	    <result property="id" column="id"/>
         <result property="uniquename" column="uniquename"/>
@@ -65,7 +65,7 @@
      
     
      <resultMap id="select-feature-with-residues-result" 
-                class="ChadoFeature">
+                class="Feature">
         <result property="organism.abbreviation" column="abbreviation"/>
         <result property="name" column="name"/>
         <result property="uniquename" column="uniquename"/>
@@ -74,14 +74,14 @@
      </resultMap>
 
      <resultMap id="select-featureprop" 
-                class="uk.ac.sanger.artemis.chado.ChadoFeatureProp">
+                class="uk.ac.sanger.artemis.chado.FeatureProp">
         <result property="value" column="value" />
         <result property="rank" column="rank" />
         <result property="cvterm" column="type_id" select="selectCvterm" />
      </resultMap>
      
      <resultMap id="select-relationship" 
-                class="uk.ac.sanger.artemis.chado.ChadoFeatureRelationship">
+                class="uk.ac.sanger.artemis.chado.FeatureRelationship">
         <result property="subject_id" column="subject_id" />
         <result property="object_id" column="object_id" />
         <result property="value" column="value" />
@@ -90,7 +90,7 @@
      </resultMap>
      
      <resultMap id="select-location"
-                class="uk.ac.sanger.artemis.chado.ChadoFeatureLoc">
+                class="uk.ac.sanger.artemis.chado.FeatureLoc">
         <result property="srcfeature_id" column="srcfeature_id" nullValue="-999" />
         <result property="fmin"   column="fmin"   nullValue="-999" />
         <result property="fmax"   column="fmax"   nullValue="-999" />
@@ -136,7 +136,7 @@
 
      <!-- get feature id -->
      <select id="getFeatureID" parameterClass="ChadoTransaction"
-                               resultClass="ChadoFeature">
+                               resultClass="Feature">
         SELECT feature_id AS id, uniquename FROM feature WHERE
         <dynamic>
           <isNotNull property="uniquename">
@@ -159,7 +159,7 @@
         </dynamic>
      </select>
 
-     <select id="getFeature" parameterClass="ChadoFeature" 
+     <select id="getFeature" parameterClass="Feature" 
                              resultMap="select-feature">
         SELECT
           timelastmodified, 
@@ -193,7 +193,7 @@
      </select>
  
      <select id="getLazyFeature" resultMap ="select-feature-lazy" 
-                            parameterClass="ChadoFeature">
+                            parameterClass="Feature">
 	 SELECT
 	    timelastmodified,
 	 	f.feature_id AS id,
@@ -258,7 +258,7 @@
 
 
     <select id="getOrganismID" resultClass="java.lang.Integer" 
-            parameterClass="ChadoFeature">
+            parameterClass="Feature">
       SELECT organism_id FROM feature f WHERE
              f.feature_id=$featureloc.srcfeature_id$
     </select>
@@ -327,7 +327,7 @@
     </delete>
 
     <insert id="insertFeature" 
-            parameterClass="ChadoFeature">
+            parameterClass="Feature">
       INSERT INTO feature 
         ( feature_id, organism_id, name, uniquename, type_id )
       VALUES
@@ -339,7 +339,7 @@
     </insert>
 
     <insert id="insertFeatureLoc" 
-            parameterClass="ChadoFeature">
+            parameterClass="Feature">
       INSERT INTO featureloc
         ( featureloc_id, feature_id, srcfeature_id, fmin, fmax, strand, phase )
       VALUES
@@ -353,13 +353,13 @@
     </insert>
 
    <delete id="deleteFeature" 
-           parameterClass="ChadoFeature">
+           parameterClass="Feature">
       DELETE FROM feature
       WHERE uniquename=#uniquename#
    </delete>
    
    <insert id="insertFeatureRelationship" 
-           parameterClass="ChadoFeature">
+           parameterClass="Feature">
       INSERT INTO feature_relationship
         ( subject_id, object_id, type_id )
       VALUES
diff --git a/artemis_sqlmap/Organism.xml b/artemis_sqlmap/Organism.xml
index 898724b4f7d92015206ac8380977772beca243fa..1f8cd895db66a6e498492d7a4dbe53054f4af005 100644
--- a/artemis_sqlmap/Organism.xml
+++ b/artemis_sqlmap/Organism.xml
@@ -6,7 +6,7 @@
  
 <sqlMap namespace="Organism"> 
       
-    <select id="getOrganism" resultClass="uk.ac.sanger.artemis.chado.ChadoOrganism"> 
+    <select id="getOrganism" resultClass="uk.ac.sanger.artemis.chado.Organism"> 
       SELECT organism_id AS id, abbreviation, genus, species, common_name, comment 
       FROM organism
       WHERE organism_id=#value# 
diff --git a/artemis_sqlmap/Synonym.xml b/artemis_sqlmap/Synonym.xml
index 1838f7d25a12c1b169ea04e160d60f9c4dcc8d68..d993e7eca38cd87c6b97db7e43ecbb28cd5efd50 100644
--- a/artemis_sqlmap/Synonym.xml
+++ b/artemis_sqlmap/Synonym.xml
@@ -7,14 +7,14 @@
 
 <sqlMap namespace="Synonym"> 
   
-    <typeAlias alias="ChadoFeatureSynonym"
-        type="uk.ac.sanger.artemis.chado.ChadoFeatureSynonym"/>
+    <typeAlias alias="FeatureSynonym"
+        type="uk.ac.sanger.artemis.chado.FeatureSynonym"/>
         
-    <typeAlias alias="ChadoSynonym"
-        type="uk.ac.sanger.artemis.chado.ChadoSynonym"/>
+    <typeAlias alias="Synonym"
+        type="uk.ac.sanger.artemis.chado.Synonym"/>
         
     <resultMap id="select-alias" 
-               class="ChadoFeatureSynonym">
+               class="FeatureSynonym">
    	    <result property="feature_id" column="feature_id"/>
    	    <result property="synonym_id" column="synonym_id"/>
    	    <result property="pub_id" column="pub_id"/>
@@ -27,7 +27,7 @@
      </resultMap>
      
      <resultMap id="select-alias-part-lazy" 
-               class="ChadoFeatureSynonym">
+               class="FeatureSynonym">
    	    <result property="feature_id" column="feature_id"/>
    	    <result property="synonym_id" column="synonym_id"/>
    	    <result property="pub_id" column="pub_id"/>
@@ -37,7 +37,7 @@
      </resultMap>
      
      <resultMap id="select-alias-lazy" 
-               class="ChadoFeatureSynonym">
+               class="FeatureSynonym">
    	    <result property="feature_id" column="feature_id"/>
    	    <result property="pub_id" column="pub_id"/>
    	    <result property="current" column="is_current"/>
@@ -46,7 +46,7 @@
      </resultMap>
      
      <resultMap id="select-synonym-lazy"
-                class="ChadoSynonym">
+                class="Synonym">
         <result property="synonym_id" column="synonym_id"/>
    	    <result property="name" column="name"/>
    	    <result property="synonym_sgml" column="synonym_sgml"/>
@@ -57,7 +57,7 @@
     <!-- SQL -->
      
     <select id="getFeatureSynonymsByUniquename" resultMap="select-alias"
-            parameterClass="ChadoFeature">
+            parameterClass="Feature">
       SELECT fs.*, s.name, s.synonym_sgml, s.type_id
       FROM feature_synonym fs 
       LEFT JOIN feature f ON f.feature_id=fs.feature_id 
@@ -68,7 +68,7 @@
     </select>
     
     <select id="getLazyFeatureSynonymsByUniquename" resultMap="select-alias-part-lazy"
-            parameterClass="ChadoFeatureSynonym">
+            parameterClass="FeatureSynonym">
       SELECT fs.* 
       FROM feature_synonym fs 
       LEFT JOIN feature f ON f.feature_id=fs.feature_id 
@@ -78,15 +78,15 @@
     </select>
     
     <select id="getFeatureSynonymsByName" resultMap="select-alias-lazy"
-            parameterClass="ChadoSynonym">
+            parameterClass="Synonym">
       SELECT * FROM feature_synonym 
       WHERE
         synonym_id=(SELECT synonym_id FROM synonym WHERE 
         name=#name#) AND is_current
     </select>
     
-    <select id="getSynonymByNameAndType" resultClass="ChadoSynonym"
-            parameterClass="ChadoSynonym">
+    <select id="getSynonymByNameAndType" resultClass="Synonym"
+            parameterClass="Synonym">
       SELECT * FROM synonym WHERE 
         <isNotNull property="name">
           name=#name# AND
@@ -104,25 +104,25 @@
 
    
   <!-- WRITE BACK -->
-    <delete id="deleteFeatureAlias" parameterClass="ChadoFeatureSynonym">
+    <delete id="deleteFeatureAlias" parameterClass="FeatureSynonym">
       DELETE FROM feature_synonym WHERE
          synonym_id=$synonym_id$ AND 
          feature_id=(SELECT feature_id FROM feature WHERE  
          uniquename=#uniquename#)
     </delete>
   
-    <insert id="insertFeatureAlias" parameterClass="ChadoFeatureSynonym">
+    <insert id="insertFeatureAlias" parameterClass="FeatureSynonym">
       INSERT INTO feature_synonym ( synonym_id, feature_id, pub_id )
       VALUES ( $synonym_id$ , 
               (SELECT feature_id FROM feature WHERE uniquename=#uniquename#), 
               1)
     </insert>
   
-    <delete id="deleteAlias" parameterClass="ChadoFeatureSynonym">
+    <delete id="deleteAlias" parameterClass="FeatureSynonym">
       DELETE FROM synonym WHERE synonym_id=$synonym_id$
     </delete>
   
-    <insert id="insertAlias" parameterClass="ChadoFeatureSynonym">
+    <insert id="insertAlias" parameterClass="FeatureSynonym">
       INSERT INTO synonym ( name, type_id, synonym_sgml ) 
       VALUES ( #synonym.name#, $synonym.cvterm.cvtermId$, #synonym.name# )
     </insert>
diff --git a/uk/ac/sanger/artemis/chado/ChadoDAO.java b/uk/ac/sanger/artemis/chado/ChadoDAO.java
index 33a6eaf96de49315736cb8edc5af6f38eb60790b..baa3fbf797ce78a578515d8b68c69a7b86777dbf 100644
--- a/uk/ac/sanger/artemis/chado/ChadoDAO.java
+++ b/uk/ac/sanger/artemis/chado/ChadoDAO.java
@@ -26,7 +26,6 @@ package uk.ac.sanger.artemis.chado;
 
 import java.sql.*;
 import java.util.List;
-import java.util.Hashtable;
 
 /**
  *
@@ -44,7 +43,7 @@ public interface ChadoDAO
    * @param id the systematic id
    * @return the Feature, or null
    */
-  public ChadoFeature getFeatureById(int id)
+  public Feature getFeatureById(int id)
                       throws SQLException;
 
   /**
@@ -53,18 +52,18 @@ public interface ChadoDAO
    * @param name the systematic id
    * @return the Feature, or null
    */
-  public ChadoFeature getFeatureByUniqueName(String name)
+  public Feature getFeatureByUniqueName(String name)
                       throws SQLException;
   
   /**
    * This can be used to get individual features or children.
-   * If ChadoFeature.featureloc.srcfeature_id is set this is used
+   * If Feature.featureloc.srcfeature_id is set this is used
    * to return the children of that srcfeature_id.
    * @param feature     the feature used to query
-   * @return	the <code>List</code> of child <code>ChadoFeature</code> objects
+   * @return	the <code>List</code> of child <code>Feature</code> objects
    * @throws SQLException
    */
-   public List getFeaturesByLocatedOnFeature(ChadoFeature parent)
+   public List getFeaturesByLocatedOnFeature(Feature parent)
                          throws SQLException;
   
    /**
@@ -91,7 +90,7 @@ public interface ChadoDAO
    * with residues.
    * @param cvterm_ids list of cvterm_id/type_id's
    * @param schema      schema/organism name or null
-   * @return	the <code>List</code> of <code>ChadoFeature</code> objects
+   * @return	the <code>List</code> of <code>Feature</code> objects
    * @throws SQLException
    */
   public List getResidueFeatures(List cvterm_ids,
@@ -130,7 +129,7 @@ public interface ChadoDAO
   /**
    * Get dbxref for a feature.
    * @param uniquename  the unique name for the feature. If set to NULL
-   *                    all <code>ChadoFeatureDbxref</code> are returned.
+   *                    all <code>FeatureDbxref</code> are returned.
    * @return a <code>List</code> of feature_dbxrefs.
    * @throws SQLException
    */
@@ -138,9 +137,9 @@ public interface ChadoDAO
               throws SQLException;
   
   /**
-   * Return a list of ChadoFeatureSynonyms for a uniquename
+   * Return a list of FeatureSynonyms for a uniquename
    * @param uniquename  the unique name for the feature. If set to NULL
-   *                    all <code>ChadoFeatureSynonym</code> are returned.
+   *                    all <code>FeatureSynonym</code> are returned.
    * @return
    * @throws SQLException
    */
@@ -154,19 +153,19 @@ public interface ChadoDAO
    * @param type the type of the Synonym
    * @return a Synonym, or null  
    */
-  public ChadoSynonym getSynonymByNameAndCvTerm(String name, ChadoCvterm type)
+  public Synonym getSynonymByNameAndCvTerm(String name, Cvterm type)
          throws SQLException;
   
   
   /**
-   * Return a list of ChadoFeatureSynonyms which link a given Feature and Synonym
+   * Return a list of FeatureSynonyms which link a given Feature and Synonym
    * 
    * @param feature the test Feature
    * @param synonym the test Synonym
    * @return a (possibly empty) List<FeatureSynonym>
    */
   public List getFeatureSynonymsByFeatureAndSynonym(
-         ChadoFeature feature, ChadoSynonym synonym)
+         Feature feature, Synonym synonym)
          throws SQLException;
   
   
diff --git a/uk/ac/sanger/artemis/chado/ChadoDemo.java b/uk/ac/sanger/artemis/chado/ChadoDemo.java
index 12f65dd9de91421d45fb1b5d03d057952b428bdd..f2ff149894cf447aa9b101f92e46c7a160c5156d 100644
--- a/uk/ac/sanger/artemis/chado/ChadoDemo.java
+++ b/uk/ac/sanger/artemis/chado/ChadoDemo.java
@@ -88,7 +88,7 @@ public class ChadoDemo
   /** feature attributes */
   private JTextArea attr_text;
 
-  /** <code>List</code> of <code>ChadoFeature</code> objects */
+  /** <code>List</code> of <code>Feature</code> objects */
   private List featureList;
 
   /**
@@ -254,7 +254,7 @@ public class ChadoDemo
   {
     int row = result_table.getSelectedRow();
     StringBuffer attr_buff = new StringBuffer();
-    ChadoFeature chado_feature = (ChadoFeature)featureList.get(row);
+    Feature chado_feature = (Feature)featureList.get(row);
     List attributes = chado_feature.getFeaturepropList();
     List dbxrefs    = chado_feature.getFeatureDbxrefs();
 
@@ -263,7 +263,7 @@ public class ChadoDemo
       attr_buff.append("/Dbxref=");
       for(int i = 0; i < dbxrefs.size(); i++)
       {
-        ChadoFeatureDbxref dbxref = (ChadoFeatureDbxref) dbxrefs.get(i);
+        FeatureDbxref dbxref = (FeatureDbxref) dbxrefs.get(i);
         attr_buff.append(dbxref.getDbxref().getDb().getName() + ":"
             + dbxref.getDbxref().getAccession() + "; ");
       }
@@ -275,11 +275,11 @@ public class ChadoDemo
     // append synonyms
     if(synonyms.size() > 0)
     {
-      ChadoFeatureSynonym alias;
+      FeatureSynonym alias;
 
       for(int i = 0; i < synonyms.size(); i++)
       {
-        alias = (ChadoFeatureSynonym) synonyms.get(i);
+        alias = (FeatureSynonym) synonyms.get(i);
         attr_buff.append("/");
         attr_buff.append(alias.getSynonym().getCvterm().getName() + "=");
         attr_buff.append(alias.getSynonym().getName());
@@ -292,7 +292,7 @@ public class ChadoDemo
     if(attributes != null)
       for(int i = 0; i < attributes.size(); i++)
       {
-        ChadoFeatureProp featprop = (ChadoFeatureProp) attributes.get(i);
+        FeatureProp featprop = (FeatureProp) attributes.get(i);
 
         attr_buff.append("/" + featprop.getCvterm().getName() + "="
             + GFFStreamFeature.decode(featprop.getValue()) + "\n");
@@ -318,7 +318,7 @@ public class ChadoDemo
       ChadoDAO dao) throws SQLException, ConnectException
   {
     final String search_name = search_gene.replaceAll("[*]","%");
-    ChadoFeature feature = new ChadoFeature();
+    Feature feature = new Feature();
     //feature.setUniquename(search_gene.replaceAll("[*]","%"));
     featureList = new Vector();
     
@@ -333,14 +333,14 @@ public class ChadoDemo
 
     for(int i = 0; i < featureList.size(); i++)
     {
-      feature = (ChadoFeature) featureList.get(i);
+      feature = (Feature) featureList.get(i);
       
       // assume only one featureloc
       List locs = feature.getFeaturelocsForFeatureId();
       
       if(locs.size() > 0)
       {
-        ChadoFeatureLoc loc = (ChadoFeatureLoc)locs.get(0);
+        FeatureLoc loc = (FeatureLoc)locs.get(0);
         int fmin = loc.getFmin() + 1;
         int fmax = loc.getFmax();
         rowData[i][4] = fmin + "..." + fmax;
diff --git a/uk/ac/sanger/artemis/chado/ChadoTransaction.java b/uk/ac/sanger/artemis/chado/ChadoTransaction.java
index a90d40a45cc21f5102dd1ab93566fa6283c9874e..ec4e78fcc038bd3661e5efa548bd2f96bf4b619b 100644
--- a/uk/ac/sanger/artemis/chado/ChadoTransaction.java
+++ b/uk/ac/sanger/artemis/chado/ChadoTransaction.java
@@ -79,11 +79,11 @@ public class ChadoTransaction
   /** feature id */
   private int feature_id;
   /** chado feature */
-  private ChadoFeature chadoFeature;
+  private Feature chadoFeature;
   /** feature dbxref */
-  private ChadoFeatureDbxref dbxref;
+  private FeatureDbxref dbxref;
   /** feature synonym */
-  private ChadoFeatureSynonym alias;
+  private FeatureSynonym alias;
   /** last time feature was modified */
   private Timestamp lastmodified;
   /** the feature object */
@@ -136,19 +136,19 @@ public class ChadoTransaction
    * be used to describe a SQL transaction.
    *
    * <i>e.g.</i> to INSERT a feature and where chado_feature is a 
-   *        <code>ChadoFeature</code>:
+   *        <code>Feature</code>:
    * <blockquote><pre>
    * ChadoTransaction tsn = new ChadoTransaction(ChadoTransaction.INSERT_FEATURE,
    *                                             chado_feature);
    * </pre></blockquote>
    *
    * @param type          the transaction type
-   * @param chado_feature the <code>ChadoFeature</code> to be inserted
+   * @param chado_feature the <code>Feature</code> to be inserted
    * @param parents       <code>Vector</code> of parent uniquenames
    * @param derives_from  <code>Vector</code> of derives_from names
    */
   public ChadoTransaction(final int type, 
-                          final ChadoFeature chadoFeature, 
+                          final Feature chadoFeature, 
                           final Vector parents,
                           final Vector derives_from)
   {
@@ -166,7 +166,7 @@ public class ChadoTransaction
    */
   public ChadoTransaction(final int type,
                           final String uniquename,
-                          final ChadoFeatureDbxref dbxref, 
+                          final FeatureDbxref dbxref, 
                           final Timestamp lastmodified,
                           final Object feature_obj)
   {
@@ -178,7 +178,7 @@ public class ChadoTransaction
   }
 
   public ChadoTransaction(final int type,
-                          final ChadoFeatureSynonym alias,
+                          final FeatureSynonym alias,
                           final Object feature_obj)
   {
     this.type   = type;
@@ -187,7 +187,7 @@ public class ChadoTransaction
   }
   
   public ChadoTransaction(final int type,
-                          final ChadoFeature chadoFeature,
+                          final Feature chadoFeature,
                           final String parent_uniquename)
   {
     this.type         = type;
@@ -199,16 +199,16 @@ public class ChadoTransaction
    * The <code>Dbxref</code> used in a transaction.
    * @return  the feature dbxref
    */
-  public ChadoFeatureDbxref getFeatureDbxref()
+  public FeatureDbxref getFeatureDbxref()
   {
     return dbxref;
   }
   
   /**
-   * The <code>ChadoFeature</code> feature used in a transaction.
-   * @return chado_feature the <code>ChadoFeature</code> 
+   * The <code>Feature</code> feature used in a transaction.
+   * @return chado_feature the <code>Feature</code> 
    */
-  public ChadoFeature getChadoFeature()
+  public Feature getChadoFeature()
   {
     return chadoFeature;
   }
@@ -406,12 +406,12 @@ public class ChadoTransaction
     return feature_obj;
   }
 
-  public ChadoFeatureSynonym getAlias()
+  public FeatureSynonym getAlias()
   {
     return alias;
   }
 
-  public void setAlias(ChadoFeatureSynonym alias)
+  public void setAlias(FeatureSynonym alias)
   {
     this.alias = alias;
   }
diff --git a/uk/ac/sanger/artemis/chado/ChadoTransactionManager.java b/uk/ac/sanger/artemis/chado/ChadoTransactionManager.java
index 208511d8fc7974e37dc9a88f6bb2dbcfe462a6ec..c834a9b0554d15245036a4116f60232798b459c7 100644
--- a/uk/ac/sanger/artemis/chado/ChadoTransactionManager.java
+++ b/uk/ac/sanger/artemis/chado/ChadoTransactionManager.java
@@ -392,7 +392,8 @@ public class ChadoTransactionManager
       Range range   = (Range)rv_new.elementAt(i);
       String seq_id = feature.getSegmentID(range);
       
-      ChadoFeature chado_feature = new ChadoFeature();
+      uk.ac.sanger.artemis.chado.Feature chado_feature = 
+               new uk.ac.sanger.artemis.chado.Feature();
       chado_feature.setUniquename(seq_id);
       
       tsn = new ChadoTransaction(
@@ -444,8 +445,9 @@ public class ChadoTransactionManager
       roe.printStackTrace();
     }
 
-    ChadoFeature chado_feature = new ChadoFeature();
-    ChadoFeatureLoc featureloc = new ChadoFeatureLoc();
+    uk.ac.sanger.artemis.chado.Feature chado_feature = 
+              new uk.ac.sanger.artemis.chado.Feature();
+    FeatureLoc featureloc = new FeatureLoc();
     chado_feature.setFeatureloc(featureloc);
     
     if(feature.isForwardFeature())
@@ -509,7 +511,7 @@ public class ChadoTransactionManager
 
     String key = feature.getKey().toString();
     
-    ChadoCvterm cvterm = new ChadoCvterm();
+    Cvterm cvterm = new Cvterm();
     cvterm.setCvtermId(DatabaseDocument.getCvtermID(key).longValue());
     chado_feature.setCvterm(cvterm);
 
@@ -529,8 +531,9 @@ public class ChadoTransactionManager
   private void insertFeatureSegment(final FeatureSegment segment,
                                     final String segment_uniquename)
   {
-    ChadoFeature chado_feature = new ChadoFeature();
-    ChadoFeatureLoc featureloc = new ChadoFeatureLoc();
+    uk.ac.sanger.artemis.chado.Feature chado_feature = 
+      new uk.ac.sanger.artemis.chado.Feature();
+    FeatureLoc featureloc = new FeatureLoc();
     chado_feature.setFeatureloc(featureloc);
     
     if(segment.isForwardSegment())
@@ -590,7 +593,7 @@ public class ChadoTransactionManager
 
     String key = feature.getKey().toString();
     
-    ChadoCvterm cvterm = new ChadoCvterm();
+    Cvterm cvterm = new Cvterm();
     cvterm.setCvtermId(DatabaseDocument.getCvtermID(key).longValue());
     chado_feature.setCvterm(cvterm);
 
@@ -622,7 +625,7 @@ public class ChadoTransactionManager
    * @param chado_feature	the <code>ChadoFeature</code>
    */
   private void addQualifiers(final QualifierVector qualifiers,
-                             final ChadoFeature chado_feature)
+                             final uk.ac.sanger.artemis.chado.Feature chado_feature)
   {
     // add qualifiers/attributes
     for(int qualifier_index = 0; qualifier_index < qualifiers.size();
@@ -652,7 +655,7 @@ public class ChadoTransactionManager
  //         else
  //         {
             // happens when duplicating features 
-            ChadoFeatureProp featureprop = new ChadoFeatureProp();
+            FeatureProp featureprop = new FeatureProp();
             featureprop.setValue((String)qualifier_values.elementAt(value_index));
             chado_feature.addQualifier(type_id, featureprop);
  //         }
@@ -972,9 +975,9 @@ public class ChadoTransactionManager
            System.out.println(uniquename+"  in handleReservedTags() DELETE db="+
                qualifier_string.substring(0,index)+" acc="+qualifier_string.substring(index+1));
          
-           ChadoFeatureDbxref old_dbxref = new ChadoFeatureDbxref();
-           ChadoDbxref dbxref = new ChadoDbxref();
-           ChadoDb db = new ChadoDb();
+           FeatureDbxref old_dbxref = new FeatureDbxref();
+           Dbxref dbxref = new Dbxref();
+           Db db = new Db();
            db.setName(qualifier_string.substring(0,index));
            dbxref.setAccession(qualifier_string.substring(index+1));
            dbxref.setDb(db);
@@ -990,8 +993,8 @@ public class ChadoTransactionManager
            System.out.println(uniquename+"  in handleReservedTags() DELETE "+qualifier_name+" "+
                               qualifier_string);
            
-           ChadoFeatureSynonym alias = new ChadoFeatureSynonym();
-           ChadoSynonym synonym = new ChadoSynonym();
+           FeatureSynonym alias = new FeatureSynonym();
+           Synonym synonym = new Synonym();
            synonym.setName(qualifier_string);
            alias.setSynonym(synonym);
            alias.setUniquename(uniquename);
@@ -1023,9 +1026,9 @@ public class ChadoTransactionManager
          
            System.out.println(uniquename+"  in handleReservedTags() INSERT db="+
              qualifier_string.substring(0,index)+" acc="+qualifier_string.substring(index+1));
-           ChadoFeatureDbxref new_dbxref = new ChadoFeatureDbxref();
-           ChadoDbxref dbxref = new ChadoDbxref();
-           ChadoDb db = new ChadoDb();
+           FeatureDbxref new_dbxref = new FeatureDbxref();
+           Dbxref dbxref = new Dbxref();
+           Db db = new Db();
            db.setName(qualifier_string.substring(0,index));
            dbxref.setDb(db);
            dbxref.setAccession(qualifier_string.substring(index+1));
@@ -1041,9 +1044,9 @@ public class ChadoTransactionManager
            System.out.println(uniquename+"  in handleReservedTags() INSERT "+qualifier_name+" "+
                qualifier_string);
            Long lcvterm_id = DatabaseDocument.getCvtermID(qualifier_name);
-           ChadoFeatureSynonym alias = new ChadoFeatureSynonym();
-           ChadoSynonym synonym = new ChadoSynonym();
-           ChadoCvterm cvterm = new ChadoCvterm();
+           FeatureSynonym alias = new FeatureSynonym();
+           Synonym synonym = new Synonym();
+           Cvterm cvterm = new Cvterm();
            cvterm.setCvtermId(lcvterm_id.longValue());
            synonym.setName(qualifier_string);
            synonym.setCvterm(cvterm);
diff --git a/uk/ac/sanger/artemis/chado/ChadoCv.java b/uk/ac/sanger/artemis/chado/Cv.java
similarity index 98%
rename from uk/ac/sanger/artemis/chado/ChadoCv.java
rename to uk/ac/sanger/artemis/chado/Cv.java
index 3e3cf1591ccfe48452b5dae255ddaee6ca3186a1..389aff65afddcdd5fda9f76a891dc6c14a795d3c 100644
--- a/uk/ac/sanger/artemis/chado/ChadoCv.java
+++ b/uk/ac/sanger/artemis/chado/Cv.java
@@ -27,7 +27,7 @@ package uk.ac.sanger.artemis.chado;
 /**
  * Representation of cv table.
  */
-public class ChadoCv
+public class Cv
 {
   private int cvId;
   private String name;
diff --git a/uk/ac/sanger/artemis/chado/ChadoCvterm.java b/uk/ac/sanger/artemis/chado/Cvterm.java
similarity index 93%
rename from uk/ac/sanger/artemis/chado/ChadoCvterm.java
rename to uk/ac/sanger/artemis/chado/Cvterm.java
index 09125dfeaa216a4546808da02de832e801c23af0..f3a53247fff9cad4f41a0e2583abc475ae7e19e2 100644
--- a/uk/ac/sanger/artemis/chado/ChadoCvterm.java
+++ b/uk/ac/sanger/artemis/chado/Cvterm.java
@@ -28,12 +28,12 @@ package uk.ac.sanger.artemis.chado;
 /**
  * Representation of cvterm table.
  */
-public class ChadoCvterm
+public class Cvterm
 {
   private long cvtermId;
   private String name;
-  private ChadoCv cv;
-  private ChadoDbxref dbxref;
+  private Cv cv;
+  private Dbxref dbxref;
   private String definition;
   private int isObsolete;
   private int isRelationshiptype;
@@ -53,7 +53,7 @@ public class ChadoCvterm
    * Note that a cvterm may have multiple secondary dbxrefs.
    * @return
    */
-  public ChadoDbxref getDbxref()
+  public Dbxref getDbxref()
   {
     return dbxref;
   }
@@ -63,17 +63,17 @@ public class ChadoCvterm
    * Note that a cvterm may have multiple secondary dbxrefs.
    * @param dbxref
    */
-  public void setDbxref(ChadoDbxref dbxref)
+  public void setDbxref(Dbxref dbxref)
   {
     this.dbxref = dbxref;
   }
 
-  public ChadoCv getCv()
+  public Cv getCv()
   {
     return cv;
   }
 
-  public void setCv(ChadoCv cv)
+  public void setCv(Cv cv)
   {
     this.cv = cv;
   }
diff --git a/uk/ac/sanger/artemis/chado/ChadoDb.java b/uk/ac/sanger/artemis/chado/Db.java
similarity index 98%
rename from uk/ac/sanger/artemis/chado/ChadoDb.java
rename to uk/ac/sanger/artemis/chado/Db.java
index 742431e5c236615612349eabae156dd69108a791..c5d71229ddfa008169b4bb084c125eb03dd62c19 100644
--- a/uk/ac/sanger/artemis/chado/ChadoDb.java
+++ b/uk/ac/sanger/artemis/chado/Db.java
@@ -27,7 +27,7 @@ package uk.ac.sanger.artemis.chado;
 /**
  * Representation of the chado db table.
  */
-public class ChadoDb
+public class Db
 { 
   private int db_id;
   private String name;
diff --git a/uk/ac/sanger/artemis/chado/ChadoDbxref.java b/uk/ac/sanger/artemis/chado/Dbxref.java
similarity index 94%
rename from uk/ac/sanger/artemis/chado/ChadoDbxref.java
rename to uk/ac/sanger/artemis/chado/Dbxref.java
index 31b2c4423ea3b5342907419e35ab41fc6d37e6f9..29970726719f8b01ad4e994cf1f8db94bf2373b8 100644
--- a/uk/ac/sanger/artemis/chado/ChadoDbxref.java
+++ b/uk/ac/sanger/artemis/chado/Dbxref.java
@@ -27,13 +27,13 @@ package uk.ac.sanger.artemis.chado;
 /**
  * Representation of the chado dbxref table.
  */
-public class ChadoDbxref
+public class Dbxref
 { 
   private int db_id;
   private String accession;
   private String version;
   private String description;
-  private ChadoDb db;
+  private Db db;
   
   public String getAccession()
   {
@@ -45,12 +45,12 @@ public class ChadoDbxref
     this.accession = accession;
   }
 
-  public ChadoDb getDb()
+  public Db getDb()
   {
     return db;
   }
 
-  public void setDb(ChadoDb db)
+  public void setDb(Db db)
   {
     this.db = db;
   }
diff --git a/uk/ac/sanger/artemis/chado/ChadoFeature.java b/uk/ac/sanger/artemis/chado/Feature.java
similarity index 83%
rename from uk/ac/sanger/artemis/chado/ChadoFeature.java
rename to uk/ac/sanger/artemis/chado/Feature.java
index 36a6f6dba4f8f4242c3c98306e2cda6e85931da1..165dbbb45498eb5f6c62c79e292f54dcb50ec053 100644
--- a/uk/ac/sanger/artemis/chado/ChadoFeature.java
+++ b/uk/ac/sanger/artemis/chado/Feature.java
@@ -1,4 +1,4 @@
-/* ChadoFeature.java
+/* Feature.java
  *
  * created: 2006
  *
@@ -35,7 +35,7 @@ import java.util.List;
  * Chado feature representation of the feature table and with references
  * to the featureloc, featureprop, feature_relationship tables.
  */
-public class ChadoFeature
+public class Feature
 {
  
   /** schema */
@@ -57,26 +57,26 @@ public class ChadoFeature
   /** whether this feature has been obsoleted */
   private boolean obsolete;
   /** feature cvterm */
-  private ChadoCvterm cvterm;
+  private Cvterm cvterm;
   /** feature property */
-  private ChadoFeatureProp featureprop;
+  private FeatureProp featureprop;
   /** feature location (for a given srcfeature) */
-  private ChadoFeatureLoc featureloc;
+  private FeatureLoc featureloc;
   /** feature relationship */
-  private ChadoFeatureRelationship feature_relationship;
+  private FeatureRelationship feature_relationship;
   /** feature organism */
-  private ChadoOrganism organism;
+  private Organism organism;
   /** optional primary public stable identifier */
-  private ChadoFeatureDbxref feature_dbxref;
+  private FeatureDbxref feature_dbxref;
   /** merged featureprops */
   private Hashtable qualifiers;
-  /** list of ChadoFeatureProp */
+  /** list of FeatureProp */
   private List featurepropList;
-  /** list of ChadoFeatureRelationship children */
+  /** list of FeatureRelationship children */
   private List featureRelationshipsForObjectId;
-  /** list of ChadoFeatureRelationship parent */
+  /** list of FeatureRelationship parent */
   private List featureRelationshipsForSubjectId;
-  /** list of feature dbxrefs (ChadoFeatureDbxref) */
+  /** list of feature dbxrefs (FeatureDbxref) */
   private List featureDbxrefs;
   /** list of feature locations for a feature_id */
   private List featurelocsForFeatureId;
@@ -262,7 +262,7 @@ public class ChadoFeature
   * This will typically be a Sequence Ontology identifier. 
   * @return the feature SO cvterm
   */
-  public ChadoCvterm getCvterm()
+  public Cvterm getCvterm()
   {
     return cvterm;
   }
@@ -272,16 +272,16 @@ public class ChadoFeature
   * This will typically be a Sequence Ontology identifier.
   * @param cvterm  the feature SO cvterm
   */
-  public void setCvterm(ChadoCvterm cvterm)
+  public void setCvterm(Cvterm cvterm)
   {
     this.cvterm = cvterm;
   }
   
   /**
    * Get the the feature property.
-   * @return the <code>ChadoFeatureProp</code>
+   * @return the <code>FeatureProp</code>
    */
-  public ChadoFeatureProp getFeatureprop()
+  public FeatureProp getFeatureprop()
   {
     return featureprop;
   }
@@ -290,16 +290,16 @@ public class ChadoFeature
    * Set the feature property. 
    * @param featureprop  the feature property
    */
-  public void setFeatureprop(ChadoFeatureProp featureprop)
+  public void setFeatureprop(FeatureProp featureprop)
   {
     this.featureprop = featureprop;
   }
 
   /**
    * Reference to the featureloc table. 
-   * @return featureloc the <code>ChadoFeatureLoc</code> object.
+   * @return featureloc the <code>FeatureLoc</code> object.
    */
-  public ChadoFeatureLoc getFeatureloc()
+  public FeatureLoc getFeatureloc()
   {
     return featureloc;
   }
@@ -308,46 +308,46 @@ public class ChadoFeature
    * Reference to the featureloc table.
    * @param featureloc  the feature location
    */
-  public void setFeatureloc(ChadoFeatureLoc featureloc)
+  public void setFeatureloc(FeatureLoc featureloc)
   {
     this.featureloc = featureloc;
   }
   
   /**
    * Reference to the feature_relationship table.
-   * @return feature_relationship the <code>ChadoFeatureRelationship</code>
+   * @return feature_relationship the <code>FeatureRelationship</code>
    *         object.
    */
-  public ChadoFeatureRelationship getFeature_relationship()
+  public FeatureRelationship getFeature_relationship()
   {
     return feature_relationship;
   }
 
   /**
    * Reference to the feature_relationship table.
-   * @param feature_relationship the <code>ChadoFeatureRelationship</code>
+   * @param feature_relationship the <code>FeatureRelationship</code>
    *        object.
    */
   public void setFeature_relationship(
-      ChadoFeatureRelationship feature_relationship)
+      FeatureRelationship feature_relationship)
   {
     this.feature_relationship = feature_relationship;
   }
 
   /**
    * Reference to the organism table for this feature.
-   * @return  the <code>ChadoOrganism</code> object
+   * @return  the <code>Organism</code> object
    */
-  public ChadoOrganism getOrganism()
+  public Organism getOrganism()
   {
     return organism;
   }
 
   /**
    * Reference to the organism table for this feature.
-   * @param organism the <code>ChadoOrganism</code> object
+   * @param organism the <code>Organism</code> object
    */
-  public void setOrganism(ChadoOrganism organism)
+  public void setOrganism(Organism organism)
   {
     this.organism = organism;
   }
@@ -358,7 +358,7 @@ public class ChadoFeature
    * Secondary identifiers and external dbxrefs go in table:feature_dbxref
    * @return
    */
-  public ChadoFeatureDbxref getFeature_dbxref()
+  public FeatureDbxref getFeature_dbxref()
   {
     return feature_dbxref;
   }
@@ -368,7 +368,7 @@ public class ChadoFeature
    * Secondary identifiers and external dbxrefs go in table:feature_dbxref
    * @param dbxref
    */
-  public void setFeature_dbxref(ChadoFeatureDbxref feature_dbxref)
+  public void setFeature_dbxref(FeatureDbxref feature_dbxref)
   {
     this.feature_dbxref = feature_dbxref;
   }
@@ -404,13 +404,13 @@ public class ChadoFeature
     
     for(int i=0; i<featurepropList.size(); i++)
     {
-      ChadoFeatureProp featureprop = (ChadoFeatureProp)featurepropList.get(i);
+      FeatureProp featureprop = (FeatureProp)featurepropList.get(i);
       addQualifier(featureprop.getCvterm().getCvtermId(), featureprop);
     }
   }
   
   /**
-   * Get a list of <code>ChadoFeatureRelationship</code> children
+   * Get a list of <code>FeatureRelationship</code> children
    * @return
    */
   public List getFeatureRelationshipsForObjectId()
@@ -419,7 +419,7 @@ public class ChadoFeature
   }
 
   /**
-   * Set a list of <code>ChadoFeatureRelationship</code> children
+   * Set a list of <code>FeatureRelationship</code> children
    * @param featureRelationshipsForObjectId
    */
   public void setFeatureRelationshipsForObjectId(
@@ -429,7 +429,7 @@ public class ChadoFeature
   }
 
   /**
-   * Get a list of <code>ChadoFeatureRelationship</code> parent
+   * Get a list of <code>FeatureRelationship</code> parent
    * @return
    */
   public List getFeatureRelationshipsForSubjectId()
@@ -438,7 +438,7 @@ public class ChadoFeature
   }
 
   /**
-   * Set a list of <code>ChadoFeatureRelationship</code> parent
+   * Set a list of <code>FeatureRelationship</code> parent
    * @param featureRelationshipsForSubjectId
    */
   public void setFeatureRelationshipsForSubjectId(
@@ -448,7 +448,7 @@ public class ChadoFeature
   }
   
   /**
-   * Get a list of feature dbxrefs (<code>ChadoFeatureDbxref</code>)
+   * Get a list of feature dbxrefs (<code>FeatureDbxref</code>)
    * @return
    */
   public List getFeatureDbxrefs()
@@ -457,7 +457,7 @@ public class ChadoFeature
   }
 
   /**
-   * Set a list of feature dbxrefs (<code>ChadoFeatureDbxref</code>)
+   * Set a list of feature dbxrefs (<code>FeatureDbxref</code>)
    * @param featureDbxrefs
    */
   public void setFeatureDbxrefs(List featureDbxrefs)
@@ -502,7 +502,7 @@ public class ChadoFeature
    * @param	the cvterm type_id of the property name
    * @param	the property value	
    */
-  public void addQualifier(long prop_type_id, ChadoFeatureProp featprop)
+  public void addQualifier(long prop_type_id, FeatureProp featprop)
   {
     if(qualifiers == null)
       qualifiers = new Hashtable();
@@ -535,15 +535,15 @@ public class ChadoFeature
   /**
    * Utility for finding a feature location from a List that corresponds
    * to a particular srcfeature.
-   * @param locs            List of ChadoFeatureLoc
+   * @param locs            List of FeatureLoc
    * @param srcfeature_id   srcfeature id
    * @return
    */
-  public static ChadoFeatureLoc getFeatureLoc(List locs, int srcfeature_id)
+  public static FeatureLoc getFeatureLoc(List locs, int srcfeature_id)
   {
     for(int i=0; i<locs.size(); i++)
     {
-      ChadoFeatureLoc loc = (ChadoFeatureLoc)locs.get(i);
+      FeatureLoc loc = (FeatureLoc)locs.get(i);
       if(loc.getSrcfeature_id() == srcfeature_id)
         return loc;
     }
diff --git a/uk/ac/sanger/artemis/chado/ChadoFeatureDbxref.java b/uk/ac/sanger/artemis/chado/FeatureDbxref.java
similarity index 90%
rename from uk/ac/sanger/artemis/chado/ChadoFeatureDbxref.java
rename to uk/ac/sanger/artemis/chado/FeatureDbxref.java
index 9ce00ee894bca83b6bda6ae6cf4700e423ccf1a4..bc4ecd83f8f4fc6c65a128aa07d6bb18eae4843a 100644
--- a/uk/ac/sanger/artemis/chado/ChadoFeatureDbxref.java
+++ b/uk/ac/sanger/artemis/chado/FeatureDbxref.java
@@ -27,7 +27,7 @@ package uk.ac.sanger.artemis.chado;
 /**
  * Representation of the chado feature_dbxref.
  */
-public class ChadoFeatureDbxref
+public class FeatureDbxref
 {
   private String schema;
   
@@ -35,11 +35,7 @@ public class ChadoFeatureDbxref
   private int feature_id;
   private int dbxref_id;
   private boolean current = true;
-  private ChadoDbxref dbxref;
-
-  public ChadoFeatureDbxref()
-  {
-  }
+  private Dbxref dbxref;
 
   public int getFeature_id()
   {
@@ -81,12 +77,12 @@ public class ChadoFeatureDbxref
     this.dbxref_id = dbxref_id;
   }
   
-  public ChadoDbxref getDbxref()
+  public Dbxref getDbxref()
   {
     return dbxref;
   }
 
-  public void setDbxref(ChadoDbxref dbxref)
+  public void setDbxref(Dbxref dbxref)
   {
     this.dbxref = dbxref;
   }
diff --git a/uk/ac/sanger/artemis/chado/ChadoFeatureLoc.java b/uk/ac/sanger/artemis/chado/FeatureLoc.java
similarity index 99%
rename from uk/ac/sanger/artemis/chado/ChadoFeatureLoc.java
rename to uk/ac/sanger/artemis/chado/FeatureLoc.java
index e0e69f6a6d560639c67b5d8250da86ae7500445e..c329b5b3ca475e7f1f37c3cf90e12add922d5223 100644
--- a/uk/ac/sanger/artemis/chado/ChadoFeatureLoc.java
+++ b/uk/ac/sanger/artemis/chado/FeatureLoc.java
@@ -27,7 +27,7 @@ package uk.ac.sanger.artemis.chado;
 /**
  * Representation of featureloc table.
  */
-public class ChadoFeatureLoc
+public class FeatureLoc
 {
   /** id of the parent feature */
   private int srcfeature_id = 0;
diff --git a/uk/ac/sanger/artemis/chado/ChadoFeatureProp.java b/uk/ac/sanger/artemis/chado/FeatureProp.java
similarity index 94%
rename from uk/ac/sanger/artemis/chado/ChadoFeatureProp.java
rename to uk/ac/sanger/artemis/chado/FeatureProp.java
index c4ff2caabce0ea66173538891a62f8575467d1c1..857aea56743be57a54a2c5539c7794c4be71cc60 100644
--- a/uk/ac/sanger/artemis/chado/ChadoFeatureProp.java
+++ b/uk/ac/sanger/artemis/chado/FeatureProp.java
@@ -27,10 +27,10 @@ package uk.ac.sanger.artemis.chado;
 /**
  * Representation of featureprop table.
  */
-public class ChadoFeatureProp
+public class FeatureProp
 {
   
-  public ChadoCvterm cvterm;
+  public Cvterm cvterm;
   public String value;
   public int rank;
 
@@ -38,7 +38,7 @@ public class ChadoFeatureProp
    * Get the cv term
    * @return cvterm
    */
-  public ChadoCvterm getCvterm()
+  public Cvterm getCvterm()
   {
     return cvterm;
   }
@@ -47,7 +47,7 @@ public class ChadoFeatureProp
    * Set the cv term
    * @param cvterm
    */
-  public void setCvterm(ChadoCvterm cvterm)
+  public void setCvterm(Cvterm cvterm)
   {
     this.cvterm = cvterm;
   }
diff --git a/uk/ac/sanger/artemis/chado/ChadoFeatureRelationship.java b/uk/ac/sanger/artemis/chado/FeatureRelationship.java
similarity index 95%
rename from uk/ac/sanger/artemis/chado/ChadoFeatureRelationship.java
rename to uk/ac/sanger/artemis/chado/FeatureRelationship.java
index 848fc968b7e01a6338afb5580a9fd9a672fcf7eb..73952055ca7faa1d8a5be293129cfea3715a4b84 100644
--- a/uk/ac/sanger/artemis/chado/ChadoFeatureRelationship.java
+++ b/uk/ac/sanger/artemis/chado/FeatureRelationship.java
@@ -27,14 +27,14 @@ package uk.ac.sanger.artemis.chado;
 /**
  * Representation of feature_relationship table.
  */
-public class ChadoFeatureRelationship
+public class FeatureRelationship
 {
   
   public int subject_id;
   /** id of the parent feature */
   public int object_id;
   /** cv term of feature relationship (e.g. part_of) */
-  public ChadoCvterm cvterm;
+  public Cvterm cvterm;
   /** Additional notes/comments */
   public String value;
   /** ordering of subject features */
@@ -45,7 +45,7 @@ public class ChadoFeatureRelationship
    * subject and object (e.g. part_of).
    * @return cvterm
    */
-  public ChadoCvterm getCvterm()
+  public Cvterm getCvterm()
   {
     return cvterm;
   }
@@ -55,7 +55,7 @@ public class ChadoFeatureRelationship
    * subject and object (e.g. part_of).
    * @param cvterm
    */
-  public void setCvterm(ChadoCvterm cvterm)
+  public void setCvterm(Cvterm cvterm)
   {
     this.cvterm = cvterm;
   }
diff --git a/uk/ac/sanger/artemis/chado/ChadoFeatureSynonym.java b/uk/ac/sanger/artemis/chado/FeatureSynonym.java
similarity index 93%
rename from uk/ac/sanger/artemis/chado/ChadoFeatureSynonym.java
rename to uk/ac/sanger/artemis/chado/FeatureSynonym.java
index 06ed53e7ebb731c2f2adb7aae451ae0d6ab7b176..4020a3dd8bd57a50092feb8341e4eee0db1f5405 100644
--- a/uk/ac/sanger/artemis/chado/ChadoFeatureSynonym.java
+++ b/uk/ac/sanger/artemis/chado/FeatureSynonym.java
@@ -28,7 +28,7 @@ package uk.ac.sanger.artemis.chado;
  * Alias GFF tags - values are stored in the synonym table and
  * linked to feature via feature_synonym table.
  */
-public class ChadoFeatureSynonym
+public class FeatureSynonym
 {
   private String schema;
   private String uniquename;
@@ -40,7 +40,7 @@ public class ChadoFeatureSynonym
   private boolean current;
   private boolean internal;
   
-  private ChadoSynonym synonym;
+  private Synonym synonym;
   
   public String getSchema()
   {
@@ -112,12 +112,12 @@ public class ChadoFeatureSynonym
     this.internal = internal;
   }
 
-  public ChadoSynonym getSynonym()
+  public Synonym getSynonym()
   {
     return synonym;
   }
 
-  public void setSynonym(ChadoSynonym synonym)
+  public void setSynonym(Synonym synonym)
   {
     this.synonym = synonym;
   }
diff --git a/uk/ac/sanger/artemis/chado/IBatisDAO.java b/uk/ac/sanger/artemis/chado/IBatisDAO.java
index ea7271854d65709cf18810582219a9332caec49e..166f39908b47e53781322604afffd39c52ead7ac 100644
--- a/uk/ac/sanger/artemis/chado/IBatisDAO.java
+++ b/uk/ac/sanger/artemis/chado/IBatisDAO.java
@@ -35,7 +35,7 @@ import javax.swing.JPasswordField;
 
 /**
  *
- * iBATIS implemetation of the <code>ChadoDAO</code> data
+ * iBATIS implemetation of the <code>DAO</code> data
  * access interface.
  *
  */
@@ -64,18 +64,18 @@ public class IBatisDAO implements ChadoDAO
    * @return the Feature, or null
    * @throws SQLException 
    */
-  public ChadoFeature getFeatureById(int id) 
+  public Feature getFeatureById(int id) 
                       throws SQLException
   {
-    ChadoFeature feature = new ChadoFeature();
+    Feature feature = new Feature();
     feature.setId(id);
     return getLazyFeature(feature);
   }
   
-  public ChadoFeature getFeatureByUniqueName(String uniquename) 
+  public Feature getFeatureByUniqueName(String uniquename) 
                       throws SQLException
   {
-    ChadoFeature feature = new ChadoFeature();
+    Feature feature = new Feature();
     feature.setUniquename(uniquename);
     return getLazyFeature(feature);
   }
@@ -83,13 +83,13 @@ public class IBatisDAO implements ChadoDAO
 
   /**
    * This can be used to get individual features or children.
-   * If ChadoFeature.featureloc.srcfeature_id is set this is used
+   * If Feature.featureloc.srcfeature_id is set this is used
    * to return the children of that srcfeature_id.
    * @param feature  the feature to query
-   * @return    the <code>List</code> of child <code>ChadoFeature</code> objects
+   * @return    the <code>List</code> of child <code>Feature</code> objects
    * @throws SQLException
    */
-  public List getFeaturesByLocatedOnFeature(final ChadoFeature feature)
+  public List getFeaturesByLocatedOnFeature(final Feature feature)
                throws SQLException
   { 
     List feature_list = sqlMap.queryForList("getFeature", feature);
@@ -107,13 +107,13 @@ public class IBatisDAO implements ChadoDAO
   public List getFeaturesByAnyCurrentName(String name) 
               throws SQLException
   {
-    final ChadoSynonym alias = new ChadoSynonym();
+    final Synonym alias = new Synonym();
     alias.setName(name);
     
     List feature_synonym_list = 
       sqlMap.queryForList("getFeatureSynonymsByName", alias);
     
-    ChadoFeature feature = new ChadoFeature();
+    Feature feature = new Feature();
     feature.setUniquename(name);
     feature.setFeatureSynonymsForFeatureId(feature_synonym_list);
 
@@ -137,13 +137,13 @@ public class IBatisDAO implements ChadoDAO
   /**
    * Get the properties of a feature.
    * @param uniquename  the unique name of the feature
-   * @return  the <code>List</code> of <code>ChadoFeature</code>
+   * @return  the <code>List</code> of <code>Feature</code>
    * @throws SQLException
    */
-  private ChadoFeature getLazyFeature(final ChadoFeature feature)
+  private Feature getLazyFeature(final Feature feature)
                              throws SQLException
   { 
-    return (ChadoFeature)sqlMap.queryForObject("getLazyFeature", feature);
+    return (Feature)sqlMap.queryForObject("getLazyFeature", feature);
   }
 
   /**
@@ -153,14 +153,14 @@ public class IBatisDAO implements ChadoDAO
    * with residues.
    * @param cvterm_ids list of cvterm_id/type_id's
    * @param schema      schema/organism name or null
-   * @return    the <code>List</code> of <code>ChadoFeature</code> objects
+   * @return    the <code>List</code> of <code>Feature</code> objects
    * @throws SQLException
    */
   public List getResidueFeatures(List cvterm_ids, 
                                  final String schema)
                      throws SQLException
   { 
-    ChadoFeature feature = new ChadoFeature();
+    Feature feature = new Feature();
     feature.setSchema(schema);
     feature.setFeatureCvterms(cvterm_ids);
 
@@ -211,30 +211,30 @@ public class IBatisDAO implements ChadoDAO
   /**
    * Get dbxref for a feature.
    * @param uniquename  the unique name for the feature. If set to NULL
-   *                    all <code>ChadoFeatureDbxref</code> are returned.
+   *                    all <code>FeatureDbxref</code> are returned.
    * @return a <code>List</code> of feature_dbxrefs.
    * @throws SQLException
    */
   public List getFeatureDbxrefByUniquename(final String uniquename)
               throws SQLException
   {
-    ChadoFeature feature = new ChadoFeature();
+    Feature feature = new Feature();
     feature.setUniquename(uniquename);
     
     return sqlMap.queryForList("getFeatureDbxref", feature);  
   }
    
   /**
-   * Return a list of ChadoFeatureSynonyms for a uniquename
+   * Return a list of FeatureSynonyms for a uniquename
    * @param uniquename  the unique name for the feature. If set to NULL
-   *                    all <code>ChadoFeatureSynonym</code> are returned.
+   *                    all <code>FeatureSynonym</code> are returned.
    * @return
    * @throws SQLException
    */
   public List getFeatureSynonymsByUniquename(final String uniquename)
          throws SQLException
   {
-    ChadoFeature feature = new ChadoFeature();
+    Feature feature = new Feature();
     feature.setUniquename(uniquename);
     
     return sqlMap.queryForList("getFeatureSynonymsByUniquename", feature);  
@@ -246,27 +246,27 @@ public class IBatisDAO implements ChadoDAO
    * @param type the type of the Synonym
    * @return a Synonym, or null  
    */
-  public ChadoSynonym getSynonymByNameAndCvTerm(
-      String name, ChadoCvterm type) 
+  public Synonym getSynonymByNameAndCvTerm(
+      String name, Cvterm type) 
       throws SQLException
   {
-    ChadoSynonym synonym = new ChadoSynonym();
+    Synonym synonym = new Synonym();
     synonym.setName(name);
     synonym.setCvterm(type);
 
-    return (ChadoSynonym)sqlMap.queryForObject("getSynonymByNameAndType", 
+    return (Synonym)sqlMap.queryForObject("getSynonymByNameAndType", 
            synonym);
   }
   
   /**
-   * Return a list of ChadoFeatureSynonyms which link a given Feature
+   * Return a list of FeatureSynonyms which link a given Feature
    * and Synonym 
    * @param feature the test Feature
    * @param synonym the test Synonym
    * @return a (possibly empty) List<FeatureSynonym>
    */
   public List getFeatureSynonymsByFeatureAndSynonym(
-      ChadoFeature feature, ChadoSynonym synonym)
+      Feature feature, Synonym synonym)
       throws SQLException
   {
     return
@@ -281,16 +281,16 @@ public class IBatisDAO implements ChadoDAO
    * @param cv_name ontology name (e.g. gene, sequence)
    * @throws SQLException
    */
-  public ChadoCvterm getCvtermID(String name, String cv_name)
+  public Cvterm getCvtermID(String name, String cv_name)
                 throws SQLException
   { 
-    ChadoCvterm cvterm   = new ChadoCvterm();
-    ChadoCv cv = new ChadoCv();
+    Cvterm cvterm   = new Cvterm();
+    Cv cv = new Cv();
     cv.setName(cv_name);
     cvterm.setCv(cv);
     cvterm.setName(name);
 
-    return (ChadoCvterm)sqlMap.queryForObject("getCvterm", cvterm);
+    return (Cvterm)sqlMap.queryForObject("getCvterm", cvterm);
   }
 
 //
@@ -298,8 +298,8 @@ public class IBatisDAO implements ChadoDAO
 //
   /**
    *
-   * Update attributes defined by the <code>ChadoTransaction</code>.
-   * @param tsn         the <code>ChadoTransaction</code>
+   * Update attributes defined by the <code>Transaction</code>.
+   * @param tsn         the <code>Transaction</code>
    * @return	number of rows changed
    * @throws SQLException
    */
@@ -311,8 +311,8 @@ public class IBatisDAO implements ChadoDAO
   }
 
   /**
-   * Insert attributes defined by the <code>ChadoTransaction</code>.
-   * @param tsn         the <code>ChadoTransaction</code>
+   * Insert attributes defined by the <code>Transaction</code>.
+   * @param tsn         the <code>Transaction</code>
    * @throws SQLException
    */
   public void insertAttributes
@@ -324,14 +324,14 @@ public class IBatisDAO implements ChadoDAO
 
     for(int i=0; i<feature_ids.size(); i++)
     {
-      tsn.setFeature_id( ((ChadoFeature)feature_ids.get(i)).getId() );
+      tsn.setFeature_id( ((Feature)feature_ids.get(i)).getId() );
       sqlMap.insert("insertAttributes", tsn);
     }
   }
 
   /**
-   * Delete attributes defined by the <code>ChadoTransaction</code>.
-   * @param tsn         the <code>ChadoTransaction</code>
+   * Delete attributes defined by the <code>Transaction</code>.
+   * @param tsn         the <code>Transaction</code>
    * @throws SQLException
    */
   public void deleteAttributes
@@ -343,14 +343,14 @@ public class IBatisDAO implements ChadoDAO
 
     for(int i=0; i<feature_ids.size(); i++)
     {
-      tsn.setFeature_id( ((ChadoFeature)feature_ids.get(i)).getId() );
+      tsn.setFeature_id( ((Feature)feature_ids.get(i)).getId() );
       sqlMap.delete("deleteAttributes", tsn);
     }
   }
 
   /**
-   * Insert a feature into the database defined by the <code>ChadoTransaction</code>.
-   * @param tsn                 the <code>ChadoTransaction</code>
+   * Insert a feature into the database defined by the <code>Transaction</code>.
+   * @param tsn                 the <code>Transaction</code>
    * @parma srcfeature_id       the parent feature identifier
    * @throws SQLException
    */
@@ -360,8 +360,8 @@ public class IBatisDAO implements ChadoDAO
                      throws SQLException
   {
     // get the organism id from the srcfeature_id 
-    ChadoFeature feature = new ChadoFeature();
-    ChadoFeatureLoc featureloc = new ChadoFeatureLoc();
+    Feature feature = new Feature();
+    FeatureLoc featureloc = new FeatureLoc();
     feature.setFeatureloc(featureloc);
     
     featureloc.setSrcfeature_id(Integer.parseInt(srcfeature_id));
@@ -370,8 +370,8 @@ public class IBatisDAO implements ChadoDAO
 
     //
     // insert feature into feature table
-    ChadoFeature chadoFeature = tsn.getChadoFeature();
-    ChadoOrganism organism = new ChadoOrganism();
+    Feature chadoFeature = tsn.getChadoFeature();
+    Organism organism = new Organism();
     organism.setId(organism_id.intValue());
     chadoFeature.setOrganism(organism);  
     sqlMap.insert("insertFeature", chadoFeature);
@@ -395,14 +395,14 @@ public class IBatisDAO implements ChadoDAO
       
       for(int i=0; i<feature_ids.size(); i++)
       {
-        ChadoFeatureRelationship feature_relationship =
-              new ChadoFeatureRelationship();
-        feature_relationship.setObject_id( ((ChadoFeature)feature_ids.get(i)).getId() );
+        FeatureRelationship feature_relationship =
+              new FeatureRelationship();
+        feature_relationship.setObject_id( ((Feature)feature_ids.get(i)).getId() );
         feature_relationship.setSubject_id(feature_id);
         
-        ChadoCvterm cvterm = new ChadoCvterm();
+        Cvterm cvterm = new Cvterm();
         if(tsn.getParents().contains( 
-            ((ChadoFeature)feature_ids.get(i)).getUniquename() ))
+            ((Feature)feature_ids.get(i)).getUniquename() ))
           cvterm.setName("part_of");
         else
           cvterm.setName("derives_from");
@@ -417,8 +417,8 @@ public class IBatisDAO implements ChadoDAO
 
 
   /**
-   * Delete a feature from the database defined by the <code>ChadoTransaction</code>.
-   * @param tsn         the <code>ChadoTransaction</code>
+   * Delete a feature from the database defined by the <code>Transaction</code>.
+   * @param tsn         the <code>Transaction</code>
    * @return    number of rows deleted
    * @throws SQLException
    */
@@ -426,7 +426,7 @@ public class IBatisDAO implements ChadoDAO
                     (final ChadoTransaction tsn)
                      throws SQLException
   {
-    ChadoFeature chadoFeature = new ChadoFeature();
+    Feature chadoFeature = new Feature();
     chadoFeature.setUniquename(tsn.getUniqueName());
 
     return sqlMap.delete("deleteFeature", chadoFeature);
@@ -434,14 +434,14 @@ public class IBatisDAO implements ChadoDAO
 
   /**
    * Insert a dbxref for a feature.
-   * @param tsn           the <code>ChadoTransaction</code>
+   * @param tsn           the <code>Transaction</code>
    * @return    number of rows changed
    * @throws SQLException
    */
   public int insertFeatureDbxref(final ChadoTransaction tsn)
                      throws SQLException
   {
-    ChadoFeatureDbxref dbxref = tsn.getFeatureDbxref();
+    FeatureDbxref dbxref = tsn.getFeatureDbxref();
     
     Integer db_id = (Integer)sqlMap.queryForObject("getDbId", 
                                  dbxref.getDbxref().getDb());
@@ -466,7 +466,7 @@ public class IBatisDAO implements ChadoDAO
     
     //  get the feature id's
     List feature_ids = sqlMap.queryForList("getFeatureID", tsn);
-    dbxref.setFeature_id( ((ChadoFeature)feature_ids.get(0)).getId() );
+    dbxref.setFeature_id( ((Feature)feature_ids.get(0)).getId() );
     
     sqlMap.insert("insertFeatureDbxref", dbxref);
 
@@ -475,35 +475,35 @@ public class IBatisDAO implements ChadoDAO
   
   /**
    * Delete a dbxref for a feature.
-   * @param tsn           the <code>ChadoTransaction</code>
+   * @param tsn           the <code>Transaction</code>
    * @return    number of rows changed
    * @throws SQLException
    */
   public int deleteFeatureDbxref(final ChadoTransaction tsn)
                      throws SQLException
   {
-    ChadoFeatureDbxref dbxref = tsn.getFeatureDbxref();
+    FeatureDbxref dbxref = tsn.getFeatureDbxref();
     
     // get the feature id's
     List feature_ids = sqlMap.queryForList("getFeatureID", tsn);
     
-    dbxref.setFeature_id( ((ChadoFeature)feature_ids.get(0)).getId() );
+    dbxref.setFeature_id( ((Feature)feature_ids.get(0)).getId() );
     return sqlMap.delete("deleteFeatureDbxref", dbxref);
   }
   
   /**
    * Insert a synonym for a feature.
-   * @param tsn           the <code>ChadoTransaction</code>
+   * @param tsn           the <code>Transaction</code>
    * @return    number of rows changed
    * @throws SQLException
    */
   public int insertFeatureAlias(final ChadoTransaction tsn)
                      throws SQLException
   {
-    final ChadoFeatureSynonym alias = tsn.getAlias();
+    final FeatureSynonym alias = tsn.getAlias();
     
-    ChadoSynonym synonym  = 
-      (ChadoSynonym)sqlMap.queryForObject("getSynonymByNameAndType", 
+    Synonym synonym  = 
+      (Synonym)sqlMap.queryForObject("getSynonymByNameAndType", 
           alias.getSynonym());
     
     if(synonym == null)
@@ -512,7 +512,7 @@ public class IBatisDAO implements ChadoDAO
       sqlMap.insert("insertAlias", alias);
       
       synonym  =
-        (ChadoSynonym)sqlMap.queryForObject("getSynonymByNameAndType", 
+        (Synonym)sqlMap.queryForObject("getSynonymByNameAndType", 
             alias.getSynonym());
     }
     
@@ -523,20 +523,20 @@ public class IBatisDAO implements ChadoDAO
   
   /**
    * Delete a synonym for a feature.
-   * @param tsn           the <code>ChadoTransaction</code>
+   * @param tsn           the <code>Transaction</code>
    * @return    number of rows changed
    * @throws SQLException
    */
   public int deleteFeatureAlias(final ChadoTransaction tsn)
                      throws SQLException
   {
-    final ChadoFeatureSynonym alias = tsn.getAlias();
+    final FeatureSynonym alias = tsn.getAlias();
      
     List feature_synonym_list = 
       sqlMap.queryForList("getFeatureSynonymsByName", alias.getSynonym());
     
-    final ChadoFeatureSynonym synonym = 
-      (ChadoFeatureSynonym)feature_synonym_list.get(0); 
+    final FeatureSynonym synonym = 
+      (FeatureSynonym)feature_synonym_list.get(0); 
     alias.setSynonym_id(synonym.getSynonym().getSynonym_id());
     
     // check this name is not used some where else, 
@@ -549,7 +549,7 @@ public class IBatisDAO implements ChadoDAO
   
   /**
    * Update feature_relationship for a feature.
-   * @param tsn           the <code>ChadoTransaction</code>
+   * @param tsn           the <code>Transaction</code>
    * @return    number of rows changed
    * @throws SQLException
    */
@@ -635,18 +635,18 @@ public class IBatisDAO implements ChadoDAO
     // merge same features in the list
     int feature_size  = list.size();
     final List flatten_list = new Vector();
-    ChadoFeature featNext  = null;
+    Feature featNext  = null;
 
     for(int i = 0; i < feature_size; i++)
     {
-      ChadoFeature feat = (ChadoFeature)list.get(i);
+      Feature feat = (Feature)list.get(i);
       String name  = feat.getUniquename();
 
       feat.addQualifier(feat.getFeatureprop().getCvterm().getCvtermId(),
                         feat.getFeatureprop());
 
       if(i < feature_size - 1)
-        featNext = (ChadoFeature)list.get(i + 1);
+        featNext = (Feature)list.get(i + 1);
 
       // merge next line if part of the same feature
       while(featNext != null && featNext.getUniquename().equals(name))
@@ -656,7 +656,7 @@ public class IBatisDAO implements ChadoDAO
         i++;
 
         if(i < feature_size - 1)
-          featNext = (ChadoFeature)list.get(i + 1);
+          featNext = (Feature)list.get(i + 1);
         else
           break;
       }
@@ -678,7 +678,7 @@ public class IBatisDAO implements ChadoDAO
     Hashtable dbxrefHash = new Hashtable();
     for(int i = 0; i < list.size(); i++)
     {
-      ChadoFeatureDbxref dbxref = (ChadoFeatureDbxref)list.get(i);
+      FeatureDbxref dbxref = (FeatureDbxref)list.get(i);
       Integer feature_id = new Integer(dbxref.getFeature_id());
       String value = dbxref.getDbxref().getDb().getName() + ":" + 
                      dbxref.getDbxref().getAccession();
diff --git a/uk/ac/sanger/artemis/chado/JdbcDAO.java b/uk/ac/sanger/artemis/chado/JdbcDAO.java
index d4a2d56a61df8fb53c72b08063ace9a3efdfde17..6758a870a76bd62816e6fa35a5ebcfd19ee3836c 100644
--- a/uk/ac/sanger/artemis/chado/JdbcDAO.java
+++ b/uk/ac/sanger/artemis/chado/JdbcDAO.java
@@ -30,7 +30,6 @@ import java.sql.*;
 import java.io.*;
 import java.util.List;
 import java.util.Vector;
-import java.util.Hashtable;
 
 /**
  *
@@ -74,10 +73,10 @@ public class JdbcDAO
    * @return the Feature, or null
    * @throws SQLException 
    */
-  public ChadoFeature getFeatureById(int id) 
+  public Feature getFeatureById(int id) 
                       throws SQLException
   {
-    ChadoFeature feature = new ChadoFeature();
+    Feature feature = new Feature();
     feature.setId(id);
     return getLazyFeature(feature);
   }
@@ -89,24 +88,25 @@ public class JdbcDAO
    * @return the Feature, or null
    * @throws SQLException 
    */
-  public ChadoFeature getFeatureByUniqueName(String uniquename)
+  public Feature getFeatureByUniqueName(String uniquename)
                       throws SQLException
   {
-    ChadoFeature feature = new ChadoFeature();
+    Feature feature = new Feature();
     feature.setUniquename(uniquename);
+    feature.setId(-1);
     return getLazyFeature(feature);
   }
   
 
   /**
    * This can be used to get individual features or children.
-   * If ChadoFeature.featureloc.srcfeature_id is set this is used
+   * If Feature.featureloc.srcfeature_id is set this is used
    * to return the children of that srcfeature_id.
    * @param feature  the feature to query
-   * @return    the <code>List</code> of child <code>ChadoFeature</code> objects
+   * @return    the <code>List</code> of child <code>Feature</code> objects
    * @throws SQLException
    */
-  public List getFeaturesByLocatedOnFeature(final ChadoFeature feature)
+  public List getFeaturesByLocatedOnFeature(final Feature feature)
                           throws SQLException
   {
     return getFeatureQuery(null, 
@@ -123,7 +123,7 @@ public class JdbcDAO
   public List getFeaturesByAnyCurrentName(String name) 
               throws SQLException
   {
-    ChadoFeature feature = new ChadoFeature();
+    Feature feature = new Feature();
     feature.setUniquename(name);
     return getFeatureQuery(name, -1, -1);
   }
@@ -142,22 +142,22 @@ public class JdbcDAO
   /**
    * Get the properties of a feature.
    * @param uniquename  the unique name of the feature
-   * @return  the <code>List</code> of <code>ChadoFeature</code>
+   * @return  the <code>List</code> of <code>Feature</code>
    * @throws SQLException
    */
-  private ChadoFeature getLazyFeature(final ChadoFeature feature)
+  private Feature getLazyFeature(final Feature feature)
                        throws SQLException
   {
     List list = getFeatureQuery(feature.getUniquename(), 
                                 -1, feature.getId());
-    return (ChadoFeature)list.get(0);
+    return (Feature)list.get(0);
   }
   
   /**
    * Get the properties of a feature.
    * @param uniquename  the unique name of the feature
    * @param parentFeatureID  the id of parent feature to query
-   * @return  the <code>List</code> of <code>ChadoFeature</code>
+   * @return  the <code>List</code> of <code>Feature</code>
    * @throws SQLException
    */
   private List getFeatureQuery(final String uniquename,
@@ -202,9 +202,9 @@ public class JdbcDAO
     final List list = new Vector();
     while(rs.next())
     {
-      ChadoFeature feature = new ChadoFeature();
+      Feature feature = new Feature();
       
-      ChadoFeatureLoc featureloc = new ChadoFeatureLoc();
+      FeatureLoc featureloc = new FeatureLoc();
       featureloc.setFmin( rs.getInt("fmin") );
       featureloc.setFmax( rs.getInt("fmax") );
       featureloc.setStrand( rs.getInt("strand") );
@@ -218,12 +218,12 @@ public class JdbcDAO
       feature.setResidues( rs.getBytes("residues") );
 
       feature.setFeatureloc(featureloc);
-      feature.setCvterm(new ChadoCvterm());
+      feature.setCvterm(new Cvterm());
       feature.getCvterm().setCvtermId( rs.getLong("type_id") );
       
       // feature properties
-      ChadoFeatureProp featureprop = new ChadoFeatureProp();
-      ChadoCvterm cvterm = new ChadoCvterm();
+      FeatureProp featureprop = new FeatureProp();
+      Cvterm cvterm = new Cvterm();
       cvterm.setCvtermId(rs.getLong("prop_type_id"));
       featureprop.setCvterm(cvterm);
       featureprop.setValue(rs.getString("value"));
@@ -234,15 +234,15 @@ public class JdbcDAO
       feature.setId( rs.getInt("feature_id") );
       
       // feature relationship
-      ChadoFeatureRelationship feature_relationship = new ChadoFeatureRelationship();
-      cvterm = new ChadoCvterm();
+      FeatureRelationship feature_relationship = new FeatureRelationship();
+      cvterm = new Cvterm();
       cvterm.setCvtermId(rs.getLong("relation_type_id"));
       feature_relationship.setCvterm(cvterm);
       feature_relationship.setObject_id( rs.getInt("object_id") );
       feature.setFeature_relationship(feature_relationship);
   
       // feature organism
-      ChadoOrganism organism = new ChadoOrganism();
+      Organism organism = new Organism();
       organism.setAbbreviation(rs.getString("abbreviation"));
       organism.setComment(rs.getString("comment"));
       organism.setCommon_name(rs.getString("common_name"));
@@ -265,7 +265,7 @@ public class JdbcDAO
    * with residues.
    * @param cvterm_ids list of cvterm_id/type_id's
    * @param schema      schema/organism name or null
-   * @return    the <code>List</code> of <code>ChadoFeature</code> objects
+   * @return    the <code>List</code> of <code>Feature</code> objects
    * @throws SQLException
    */
   public List getResidueFeatures(List cvterm_ids, 
@@ -294,15 +294,15 @@ public class JdbcDAO
     List list = new Vector();
     while(rs.next())
     {
-      ChadoFeature feature = new ChadoFeature();
-      ChadoOrganism organism = new ChadoOrganism();
+      Feature feature = new Feature();
+      Organism organism = new Organism();
       organism.setAbbreviation( rs.getString("abbreviation") );
       
       feature.setOrganism(organism);
       feature.setId( rs.getInt("feature_id") );
       feature.setName( rs.getString("name") );
       feature.setUniquename( rs.getString("uniquename") );
-      feature.setCvterm(new ChadoCvterm());
+      feature.setCvterm(new Cvterm());
       feature.getCvterm().setCvtermId( rs.getLong("type_id") );
       
       list.add(feature);
@@ -378,7 +378,7 @@ public class JdbcDAO
 
     while(rs.next())
     {
-      ChadoCvterm cvterm = new ChadoCvterm();
+      Cvterm cvterm = new Cvterm();
       cvterm.setCvtermId( rs.getLong("cvterm_id") );
       cvterm.setName( rs.getString("name") );
       cvterms.add(cvterm);
@@ -390,7 +390,7 @@ public class JdbcDAO
   /**
    * Get dbxref for a feature.
    * @param uniquename  the unique name for the feature. If set to NULL
-   *                    all <code>ChadoFeatureDbxref</code> are returned.
+   *                    all <code>FeatureDbxref</code> are returned.
    * @return a <code>List</code> of feature_dbxrefs.
    * @throws SQLException
    */
@@ -413,9 +413,9 @@ public class JdbcDAO
 
     while(rs.next())
     {
-      ChadoFeatureDbxref feature_dbxref = new ChadoFeatureDbxref();
-      ChadoDbxref dbxref = new ChadoDbxref();
-      ChadoDb db = new ChadoDb();
+      FeatureDbxref feature_dbxref = new FeatureDbxref();
+      Dbxref dbxref = new Dbxref();
+      Db db = new Db();
       db.setName( rs.getString("name") );
       dbxref.setAccession( rs.getString("accession") );
       dbxref.setDb(db);
@@ -429,9 +429,9 @@ public class JdbcDAO
   
   
   /**
-   * Return a list of ChadoFeatureSynonyms for a uniquename
+   * Return a list of FeatureSynonyms for a uniquename
    * @param uniquename  the unique name for the feature. If set to NULL
-   *                    all <code>ChadoFeatureSynonym</code> are returned.
+   *                    all <code>FeatureSynonym</code> are returned.
    * @return
    * @throws SQLException
    */
@@ -450,13 +450,13 @@ public class JdbcDAO
     Statement st = conn.createStatement();
     ResultSet rs = st.executeQuery(sql);
     List synonym = new Vector();
-    ChadoFeatureSynonym alias;
+    FeatureSynonym alias;
     while(rs.next())
     {
-      alias = new ChadoFeatureSynonym();
-      ChadoCvterm cvterm = new ChadoCvterm();
+      alias = new FeatureSynonym();
+      Cvterm cvterm = new Cvterm();
       cvterm.setCvtermId(rs.getLong("type_id"));
-      ChadoSynonym syn = new ChadoSynonym();
+      Synonym syn = new Synonym();
       syn.setName(rs.getString("name"));
       syn.setCvterm(cvterm);
 
@@ -472,14 +472,14 @@ public class JdbcDAO
   }
   
   public List getFeatureSynonymsByFeatureAndSynonym(
-      ChadoFeature feature, ChadoSynonym synonym)
+      Feature feature, Synonym synonym)
   {
     return null;
   }
 
 
-  public ChadoSynonym getSynonymByNameAndCvTerm(
-      String name, ChadoCvterm type)
+  public Synonym getSynonymByNameAndCvTerm(
+      String name, Cvterm type)
   {
     return null;
   }
@@ -664,7 +664,7 @@ public class JdbcDAO
 
     final int organism_id = rs.getInt("organism_id");
 
-    ChadoFeature chadoFeature = tsn.getChadoFeature();
+    Feature chadoFeature = tsn.getChadoFeature();
     // insert new feature into feature table
     StringBuffer sql_buff = new StringBuffer();
     sql_buff.append("INSERT INTO feature (");
@@ -750,7 +750,7 @@ public class JdbcDAO
   public int insertFeatureDbxref(final ChadoTransaction tsn)
                      throws SQLException
   {
-    final ChadoFeatureDbxref dbxref = tsn.getFeatureDbxref();
+    final FeatureDbxref dbxref = tsn.getFeatureDbxref();
     final String uniquename  = tsn.getUniqueName();
     
     // find database id
@@ -812,7 +812,7 @@ public class JdbcDAO
   public int deleteFeatureDbxref(final ChadoTransaction tsn)
                      throws SQLException
   {
-    final ChadoFeatureDbxref dbxref = tsn.getFeatureDbxref();
+    final FeatureDbxref dbxref = tsn.getFeatureDbxref();
     final String uniquename = tsn.getUniqueName();
     
     final String sql = 
@@ -836,7 +836,7 @@ public class JdbcDAO
   public int insertFeatureAlias(final ChadoTransaction tsn)
                      throws SQLException
   {
-    final ChadoFeatureSynonym alias  = tsn.getAlias();
+    final FeatureSynonym alias  = tsn.getAlias();
     final String uniquename   = alias.getUniquename();
     final String synonym_name = alias.getSynonym().getName();
       
@@ -889,7 +889,7 @@ public class JdbcDAO
   public int deleteFeatureAlias(final ChadoTransaction tsn)
                      throws SQLException
   {
-    final ChadoFeatureSynonym alias = tsn.getAlias();
+    final FeatureSynonym alias = tsn.getAlias();
     final String uniquename   = alias.getUniquename();
     final String synonym_name = alias.getSynonym().getName();
     String sql = "SELECT synonym_id FROM synonym WHERE "+
@@ -929,7 +929,7 @@ public class JdbcDAO
       final ChadoTransaction tsn)
                      throws SQLException
   {
-    final ChadoFeature chado_feature = tsn.getChadoFeature();
+    final Feature chado_feature = tsn.getChadoFeature();
     final String parent = tsn.getParent_uniquename();
     
       
diff --git a/uk/ac/sanger/artemis/chado/ChadoOrganism.java b/uk/ac/sanger/artemis/chado/Organism.java
similarity index 98%
rename from uk/ac/sanger/artemis/chado/ChadoOrganism.java
rename to uk/ac/sanger/artemis/chado/Organism.java
index 8a352a2e549daf354fc87e9ffa608a6f9eace703..17a8c62fa197a8a64816043bac11f38cccf194d6 100644
--- a/uk/ac/sanger/artemis/chado/ChadoOrganism.java
+++ b/uk/ac/sanger/artemis/chado/Organism.java
@@ -27,7 +27,7 @@ package uk.ac.sanger.artemis.chado;
 /**
  * Representation of the organism table.
  */
-public class ChadoOrganism
+public class Organism
 {
 
   /** organism identifier */
diff --git a/uk/ac/sanger/artemis/chado/ChadoSynonym.java b/uk/ac/sanger/artemis/chado/Synonym.java
similarity index 92%
rename from uk/ac/sanger/artemis/chado/ChadoSynonym.java
rename to uk/ac/sanger/artemis/chado/Synonym.java
index 689290b04fa8d76039dc61480345bed14ddb05cd..3c8eee48651bc138aa120b05f405f12e4ad3e8da 100644
--- a/uk/ac/sanger/artemis/chado/ChadoSynonym.java
+++ b/uk/ac/sanger/artemis/chado/Synonym.java
@@ -28,12 +28,12 @@ package uk.ac.sanger.artemis.chado;
  * Alias GFF tags - values are stored in the synonym table and
  * linked to feature via feature_synonym table.
  */
-public class ChadoSynonym
+public class Synonym
 {
   // synonym
   private Integer synonym_id;
   private String name;
-  private ChadoCvterm cvterm;
+  private Cvterm cvterm;
   private String synonym_sgml;
   
   public Integer getSynonym_id()
@@ -56,12 +56,12 @@ public class ChadoSynonym
     this.name = name;
   }
   
-  public ChadoCvterm getCvterm()
+  public Cvterm getCvterm()
   {
     return cvterm;
   }
 
-  public void setCvterm(ChadoCvterm cvterm)
+  public void setCvterm(Cvterm cvterm)
   {
     this.cvterm = cvterm;
   }
diff --git a/uk/ac/sanger/artemis/components/genebuilder/GeneBuilderFrame.java b/uk/ac/sanger/artemis/components/genebuilder/GeneBuilderFrame.java
index 74e8dacec556f7a7d06288f55ca8949ae7a581bd..5d85a47c8af5746eef51d3b975f7040a63eef6cd 100644
--- a/uk/ac/sanger/artemis/components/genebuilder/GeneBuilderFrame.java
+++ b/uk/ac/sanger/artemis/components/genebuilder/GeneBuilderFrame.java
@@ -20,7 +20,7 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  *
- * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/genebuilder/GeneBuilderFrame.java,v 1.13 2006-08-08 10:20:23 tjc Exp $
+ * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/genebuilder/GeneBuilderFrame.java,v 1.14 2006-08-22 13:00:57 tjc Exp $
  */
 
 package uk.ac.sanger.artemis.components.genebuilder;
@@ -49,7 +49,6 @@ import uk.ac.sanger.artemis.FeatureChangeEvent;
 import uk.ac.sanger.artemis.FeatureChangeListener;
 import uk.ac.sanger.artemis.GotoEventSource;
 import uk.ac.sanger.artemis.Selection;
-import uk.ac.sanger.artemis.chado.ChadoFeature;
 import uk.ac.sanger.artemis.components.FeatureEdit;
 import uk.ac.sanger.artemis.io.GFFStreamFeature;
 import uk.ac.sanger.artemis.io.ChadoCanonicalGene;
@@ -418,7 +417,7 @@ public class GeneBuilderFrame extends JFrame
        if(exons == null)
          continue;
        
-       if(exons.get(0) instanceof ChadoFeature)
+       if(exons.get(0) instanceof uk.ac.sanger.artemis.chado.Feature)
          return;
        
        for(int j=0; j<exons.size(); j++)
diff --git a/uk/ac/sanger/artemis/components/genebuilder/GeneComponentTree.java b/uk/ac/sanger/artemis/components/genebuilder/GeneComponentTree.java
index e9a5a7d844bf4f6803701bfb66e432ea2b81d083..dd1f669292564c2577ff960687a8c4273bba19a7 100644
--- a/uk/ac/sanger/artemis/components/genebuilder/GeneComponentTree.java
+++ b/uk/ac/sanger/artemis/components/genebuilder/GeneComponentTree.java
@@ -20,7 +20,7 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  *
- * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/genebuilder/GeneComponentTree.java,v 1.12 2006-08-16 14:43:56 tjc Exp $
+ * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/genebuilder/GeneComponentTree.java,v 1.13 2006-08-22 13:00:57 tjc Exp $
  */
 
 package uk.ac.sanger.artemis.components.genebuilder;
@@ -28,7 +28,6 @@ package uk.ac.sanger.artemis.components.genebuilder;
 import uk.ac.sanger.artemis.io.ChadoCanonicalGene;
 import uk.ac.sanger.artemis.io.Feature;
 import uk.ac.sanger.artemis.io.InvalidRelationException;
-import uk.ac.sanger.artemis.chado.ChadoFeature;
 import uk.ac.sanger.artemis.Selection;
 import uk.ac.sanger.artemis.FeatureVector;
 
@@ -185,11 +184,9 @@ public class GeneComponentTree extends JTree
       if(protein == null)
         continue;
       
-      if(protein instanceof Feature)
-        protein_id = 
+      protein_id = 
           (String)((Feature)protein).getQualifierByName("ID").getValues().get(0);
-      else
-        protein_id = ((ChadoFeature)protein).getUniquename();
+
       
       protein_node = new DefaultMutableTreeNode(protein_id);
       
diff --git a/uk/ac/sanger/artemis/components/genebuilder/GeneViewerPanel.java b/uk/ac/sanger/artemis/components/genebuilder/GeneViewerPanel.java
index dd83161a41eb6ea71cf5c81dec8edfc5e870b593..a101782a5bad04ab7baf297cbfcfdcf983957716 100644
--- a/uk/ac/sanger/artemis/components/genebuilder/GeneViewerPanel.java
+++ b/uk/ac/sanger/artemis/components/genebuilder/GeneViewerPanel.java
@@ -20,7 +20,7 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  *
- * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/genebuilder/GeneViewerPanel.java,v 1.24 2006-08-17 13:21:38 tjc Exp $
+ * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/genebuilder/GeneViewerPanel.java,v 1.25 2006-08-22 13:00:57 tjc Exp $
  */
 
 package uk.ac.sanger.artemis.components.genebuilder;
@@ -44,9 +44,8 @@ import uk.ac.sanger.artemis.LastSegmentException;
 import uk.ac.sanger.artemis.Selection;
 import uk.ac.sanger.artemis.FeatureVector;
 
-import uk.ac.sanger.artemis.chado.ChadoFeature;
-import uk.ac.sanger.artemis.chado.ChadoFeatureLoc;
-import uk.ac.sanger.artemis.chado.ChadoFeatureProp;
+import uk.ac.sanger.artemis.chado.FeatureLoc;
+import uk.ac.sanger.artemis.chado.FeatureProp;
 import uk.ac.sanger.artemis.io.EntryInformationException;
 import uk.ac.sanger.artemis.io.Feature;
 import uk.ac.sanger.artemis.io.GFFStreamFeature;
@@ -619,20 +618,21 @@ public class GeneViewerPanel extends JPanel
     int offset = 0;
     boolean last_segment = false;
     
-    if(exons.get(0) instanceof ChadoFeature)
+    if(exons.get(0) instanceof uk.ac.sanger.artemis.chado.Feature)
     {
       int last_ex_start = 0;
       int last_ex_end   = 0;
       int last_ypos     = 0;
       
-      ChadoFeature start_exon = (ChadoFeature)exons.get(0);
-      ChadoFeatureLoc loc = ChadoFeature.getFeatureLoc(
+      uk.ac.sanger.artemis.chado.Feature start_exon = 
+        (uk.ac.sanger.artemis.chado.Feature)exons.get(0);
+      FeatureLoc loc = uk.ac.sanger.artemis.chado.Feature.getFeatureLoc(
            start_exon.getFeaturelocsForFeatureId(), chado_gene.getSrcfeature_id());
       
       if(loc.getStrand() == -1)
       {
-        ChadoFeatureLoc loc_last = ChadoFeature.getFeatureLoc(
-            ((ChadoFeature)exons.get(exons.size()-1)).getFeaturelocsForFeatureId(),
+        FeatureLoc loc_last = uk.ac.sanger.artemis.chado.Feature.getFeatureLoc(
+            ((uk.ac.sanger.artemis.chado.Feature)exons.get(exons.size()-1)).getFeaturelocsForFeatureId(),
             chado_gene.getSrcfeature_id());
             
         if(loc.getFmin() < loc_last.getFmin())
@@ -641,8 +641,9 @@ public class GeneViewerPanel extends JPanel
       
       for(int j=0; j<exons.size(); j++)
       {           
-        ChadoFeature exon = (ChadoFeature)exons.get(j);
-        loc = ChadoFeature.getFeatureLoc(
+        uk.ac.sanger.artemis.chado.Feature exon = 
+          (uk.ac.sanger.artemis.chado.Feature)exons.get(j);
+        loc = uk.ac.sanger.artemis.chado.Feature.getFeatureLoc(
             exon.getFeaturelocsForFeatureId(), chado_gene.getSrcfeature_id());
         
         int ex_start = border+(int)((loc.getFmin()+1-start)*fraction);
@@ -1008,12 +1009,12 @@ public class GeneViewerPanel extends JPanel
    * @param feature
    * @return
    */
-  private Color getColorFromAttributes(ChadoFeature feature)
+  private Color getColorFromAttributes(uk.ac.sanger.artemis.chado.Feature feature)
   {
     List properties = feature.getFeaturepropList();
     for(int i=0; i<properties.size(); i++)
     {
-      ChadoFeatureProp property = (ChadoFeatureProp)properties.get(i);
+      FeatureProp property = (FeatureProp)properties.get(i);
       
       if(property.getCvterm().getName().equals("colour") ||
          property.getCvterm().getName().equals("color") )
@@ -1031,7 +1032,7 @@ public class GeneViewerPanel extends JPanel
    * @return frame id
    */
   private int getFrameID(ChadoCanonicalGene chado_gene, 
-                         ChadoFeatureLoc loc, 
+                         FeatureLoc loc, 
                          int nexon, List exons)
   {
     final int position_on_strand;
@@ -1083,7 +1084,7 @@ public class GeneViewerPanel extends JPanel
    **/
   private int getFrameShift(int nexon, List exons, 
                             ChadoCanonicalGene chado_gene,
-                            ChadoFeatureLoc loc) 
+                            FeatureLoc loc) 
   {
     // find the number of bases in the segments before this one
     int base_count = 0;
@@ -1091,8 +1092,9 @@ public class GeneViewerPanel extends JPanel
     
     for(int i = 0; i < exons.size(); ++i) 
     {
-      ChadoFeature this_feature = (ChadoFeature)exons.get(i);
-      ChadoFeatureLoc featureLoc = ChadoFeature.getFeatureLoc(
+      uk.ac.sanger.artemis.chado.Feature this_feature = 
+        (uk.ac.sanger.artemis.chado.Feature)exons.get(i);
+      FeatureLoc featureLoc = uk.ac.sanger.artemis.chado.Feature.getFeatureLoc(
           this_feature.getFeaturelocsForFeatureId(), chado_gene.getSrcfeature_id());
       
       int this_direction;
diff --git a/uk/ac/sanger/artemis/util/DatabaseDocument.java b/uk/ac/sanger/artemis/util/DatabaseDocument.java
index 6e65bff36e29ccda635c5f4dbed001a97eebc73b..a538fbd70f4dab1f6090e9dfdbbf024f97a5c9cb 100644
--- a/uk/ac/sanger/artemis/util/DatabaseDocument.java
+++ b/uk/ac/sanger/artemis/util/DatabaseDocument.java
@@ -427,9 +427,9 @@ public class DatabaseDocument extends Document
     final int srcfeature_id = Integer.parseInt(parentFeatureID);
     
     // build srcfeature object
-    ChadoFeatureLoc featureloc = new ChadoFeatureLoc();
+    FeatureLoc featureloc = new FeatureLoc();
     featureloc.setSrcfeature_id(srcfeature_id);
-    ChadoFeature parent = new ChadoFeature();
+    Feature parent = new Feature();
     parent.setFeatureloc(featureloc);
     
     List featList = dao.getFeaturesByLocatedOnFeature(parent);
@@ -438,7 +438,7 @@ public class DatabaseDocument extends Document
     for(int i = 0; i < buffers.length; i++)
       buffers[i] = new ByteBuffer();
 
-    final ChadoFeature parentFeature = dao.getFeatureById(srcfeature_id);
+    final Feature parentFeature = dao.getFeatureById(srcfeature_id);
     
     ByteBuffer this_buff;
 
@@ -448,7 +448,7 @@ public class DatabaseDocument extends Document
     // build feature name store
     for(int i = 0; i < feature_size; i++)
     {
-      ChadoFeature feat = (ChadoFeature)featList.get(i);
+      Feature feat = (Feature)featList.get(i);
       String name       = feat.getUniquename();
       String feature_id = Integer.toString(feat.getId());
 
@@ -464,7 +464,7 @@ public class DatabaseDocument extends Document
     for(int i = 0; i < feature_size; i++)
     { 
       // select buffer based on feature type
-      ChadoFeature feat = (ChadoFeature)featList.get(i);
+      Feature feat = (Feature)featList.get(i);
       long type_id      = feat.getCvterm().getCvtermId();
       String typeName   = getCvtermName(type_id, dao);
       this_buff = buffers[types.length];
@@ -491,7 +491,8 @@ public class DatabaseDocument extends Document
    * @throws SQLException 
    * 
    */
-  private Hashtable getAllFeatureSynonyms(final ChadoDAO dao, final String uniquename) 
+  private Hashtable getAllFeatureSynonyms(final ChadoDAO dao, 
+          final String uniquename) 
           throws SQLException
   {
     List list = dao.getFeatureSynonymsByUniquename(uniquename);  
@@ -499,11 +500,11 @@ public class DatabaseDocument extends Document
     Hashtable synonym = new Hashtable();
     Integer feature_id;
     Vector value;
-    ChadoFeatureSynonym alias;
+    FeatureSynonym alias;
     
     for(int i=0; i<list.size(); i++)
     {
-      alias = (ChadoFeatureSynonym)list.get(i);
+      alias = (FeatureSynonym)list.get(i);
       feature_id = alias.getFeature_id();
       if(synonym.containsKey(feature_id))
         value = (Vector)synonym.get(feature_id);
@@ -536,21 +537,21 @@ public class DatabaseDocument extends Document
   {
     Hashtable id_store = new Hashtable();
 
-    //ChadoFeature feature = new ChadoFeature();
+    //Feature feature = new Feature();
     //feature.setUniquename(search_gene);
 
     reset((String)getLocation(), (String)schema_search.get(0));
     dao = getDAO();
-    ChadoFeature feature = dao.getFeatureByUniqueName(search_gene);
+    Feature feature = dao.getFeatureByUniqueName(search_gene);
     
     ChadoCanonicalGene chado_gene = new ChadoCanonicalGene();
     id_store.put(Integer.toString(feature.getId()), feature.getUniquename());
 
     List featurelocs = feature.getFeaturelocsForFeatureId();
-    ChadoFeatureLoc featureloc = (ChadoFeatureLoc) featurelocs.get(0);
+    FeatureLoc featureloc = (FeatureLoc) featurelocs.get(0);
     int src_id = featureloc.getSrcfeature_id();
 
-    ChadoFeature parent = new ChadoFeature();
+    Feature parent = new Feature();
     parent.setId(src_id);
 
     parent = dao.getFeatureById(src_id);  //.getLazyFeature(parent);
@@ -568,16 +569,16 @@ public class DatabaseDocument extends Document
     
     for(int i = 0; i < relations.size(); i++)
     {
-      //ChadoFeature transcript = new ChadoFeature();
+      //Feature transcript = new Feature();
       
-      int id = ((ChadoFeatureRelationship) relations.get(i)).getSubject_id();
+      int id = ((FeatureRelationship) relations.get(i)).getSubject_id();
       //transcript.setId(id);
-      ChadoFeature transcript = dao.getFeatureById(id); //.getLazyFeature(transcript);
+      Feature transcript = dao.getFeatureById(id); //.getLazyFeature(transcript);
 
       id_store.put(Integer.toString(transcript.getId()), transcript
           .getUniquename());
 
-      ChadoFeatureLoc loc = ChadoFeature.getFeatureLoc(transcript
+      FeatureLoc loc = Feature.getFeatureLoc(transcript
           .getFeaturelocsForFeatureId(), src_id);
       chadoToGFF(transcript, feature.getUniquename(), null,
           null, id_store, dao, loc, buff);
@@ -587,15 +588,15 @@ public class DatabaseDocument extends Document
 
       for(int j = 0; j < transcipt_relations.size(); j++)
       {
-        id = ((ChadoFeatureRelationship) transcipt_relations.get(j)).getSubject_id();
-        //ChadoFeature child = new ChadoFeature();
-        //child.setId(((ChadoFeatureRelationship) transcipt_relations.get(j))
+        id = ((FeatureRelationship) transcipt_relations.get(j)).getSubject_id();
+        //Feature child = new Feature();
+        //child.setId(((FeatureRelationship) transcipt_relations.get(j))
         //    .getSubject_id());
-        ChadoFeature child = dao.getFeatureById(id); //dao.getLazyFeature(child);
+        Feature child = dao.getFeatureById(id); //dao.getLazyFeature(child);
 
         id_store.put(Integer.toString(child.getId()), child.getUniquename());
 
-        loc = ChadoFeature.getFeatureLoc(child.getFeaturelocsForFeatureId(),src_id);
+        loc = Feature.getFeatureLoc(child.getFeaturelocsForFeatureId(),src_id);
         chadoToGFF(child, transcript.getUniquename(), null,
                    null, id_store, dao, loc, buff);
       }
@@ -615,13 +616,13 @@ public class DatabaseDocument extends Document
    * @param featureloc     feature location for this chado feature
    * @param this_buff      byte buffer of GFF line 
    */
-  private static void chadoToGFF(final ChadoFeature feat,
+  private static void chadoToGFF(final Feature feat,
                                  final String parentFeature,
                                  final Hashtable dbxrefs,
                                  final Hashtable synonym,
                                  final Hashtable id_store,
                                  final ChadoDAO dao,
-                                 final ChadoFeatureLoc featureloc,
+                                 final FeatureLoc featureloc,
                                  final ByteBuffer this_buff)
   {
     String gff_source = null;
@@ -642,7 +643,7 @@ public class DatabaseDocument extends Document
     int rank = -1;
     if(feat.getFeature_relationship() != null)
     {
-      ChadoFeatureRelationship feat_relationship = feat.getFeature_relationship();
+      FeatureRelationship feat_relationship = feat.getFeature_relationship();
       parent_id = Integer.toString(feat_relationship.getObject_id());
       long parent_type_id = feat_relationship.getCvterm().getCvtermId();
       
@@ -657,8 +658,8 @@ public class DatabaseDocument extends Document
       List relations = feat.getFeatureRelationshipsForSubjectId();
       for(int i=0; i<relations.size(); i++)
       {
-        ChadoFeatureRelationship feat_relationship = 
-                            (ChadoFeatureRelationship)relations.get(i);
+        FeatureRelationship feat_relationship = 
+                            (FeatureRelationship)relations.get(i);
         parent_id = Integer.toString(feat_relationship.getObject_id());
         System.out.println("HERE   "+i+" "+feat_relationship.getCvterm().getName()+ " "+
             feat_relationship.getObject_id()+" "+feat_relationship.getSubject_id()+ " parent_id="+ parent_id);
@@ -745,7 +746,7 @@ public class DatabaseDocument extends Document
         Vector qualifier_value = (Vector)qualifiers.get(qualifier_type_id);
         for(int j=0; j<qualifier_value.size(); j++)
         {
-          ChadoFeatureProp featprop = (ChadoFeatureProp)qualifier_value.get(j);
+          FeatureProp featprop = (FeatureProp)qualifier_value.get(j);
          
           if(featprop.getValue() != null)
             this_buff.append(qualifier_name+ "=" +
@@ -771,11 +772,11 @@ public class DatabaseDocument extends Document
     if(synonym != null &&
        synonym.containsKey(feature_id))
     {   
-      ChadoFeatureSynonym alias;
+      FeatureSynonym alias;
       Vector v_synonyms = (Vector)synonym.get(feature_id);
       for(int j=0; j<v_synonyms.size(); j++)
       {
-        alias = (ChadoFeatureSynonym)v_synonyms.get(j);
+        alias = (FeatureSynonym)v_synonyms.get(j);
         
         this_buff.append( getCvtermName(alias.getSynonym().getCvterm().getCvtermId(), dao) + "=" );
         //this_buff.append(alias.getSynonym().getCvterm().getName()+"=");
@@ -836,7 +837,7 @@ public class DatabaseDocument extends Document
 
       while(it.hasNext())
       {
-        ChadoCvterm cv = (ChadoCvterm)it.next();
+        Cvterm cv = (Cvterm)it.next();
         cvterm.put(new Long(cv.getCvtermId()), cv.getName());
       }
     }
@@ -859,7 +860,7 @@ public class DatabaseDocument extends Document
   private ByteBuffer getChadoSequence(ChadoDAO dao, ByteBuffer buff)
                      throws java.sql.SQLException
   {
-    ChadoFeature feature = dao.getFeatureById(Integer.parseInt(feature_id));
+    Feature feature = dao.getFeatureById(Integer.parseInt(feature_id));
  
     buff.append("##FASTA\n>");
     buff.append(feature.getUniquename());
@@ -934,7 +935,7 @@ public class DatabaseDocument extends Document
         Iterator it_residue_features = list_residue_features.iterator();
         while(it_residue_features.hasNext())
         {
-          ChadoFeature feature = (ChadoFeature)it_residue_features.next();
+          Feature feature = (Feature)it_residue_features.next();
           String typeName = getCvtermName(feature.getCvterm().getCvtermId(), getDAO()); 
           
           db.put(schema + " - " + typeName + " - " + feature.getUniquename(),
@@ -1111,7 +1112,7 @@ public class DatabaseDocument extends Document
 
               dao.writeTimeLastModified((String) uniquename.get(k), ts);
               
-              ChadoFeature feature = dao.getFeatureByUniqueName((String) uniquename.get(k));
+              Feature feature = dao.getFeatureByUniqueName((String) uniquename.get(k));
               ts2 = feature.getTimelastmodified();
               if(ts2 == null)
                 continue;
@@ -1171,7 +1172,7 @@ public class DatabaseDocument extends Document
                                        final ChadoDAO dao)
                                        throws SQLException
   {
-    ChadoFeature feature = dao.getFeatureByUniqueName(uniquename);
+    Feature feature = dao.getFeatureByUniqueName(uniquename);
     Timestamp now = feature.getTimelastmodified();
     
     if(now != null && timestamp != null)
@@ -1213,7 +1214,7 @@ public class DatabaseDocument extends Document
       else
         dao = new IBatisDAO(src.getPfield());
       
-      ChadoFeature feature = new ChadoFeature();
+      Feature feature = new Feature();
       feature.setUniquename(args[0]);
       List schemas = new Vector();
       schemas.add(args[1]);
@@ -1222,14 +1223,14 @@ public class DatabaseDocument extends Document
       System.out.println("FINISHED getFeature()");
       for(int i = 0; i < featureList.size(); i++)
       {
-        feature = (ChadoFeature)featureList.get(i);
+        feature = (Feature)featureList.get(i);
         
         String abb  = feature.getOrganism().getAbbreviation();
         String type = feature.getCvterm().getName();
         int fmin    = feature.getFeatureloc().getFmin() + 1;
         int fmax    = feature.getFeatureloc().getFmax();
         String featprop = 
-          ((ChadoFeatureProp)feature.getFeaturepropList().get(0)).getCvterm().getName();
+          ((FeatureProp)feature.getFeaturepropList().get(0)).getCvterm().getName();
         
         System.out.print(fmin+".."+fmax);
         System.out.print(" "+type);
@@ -1243,7 +1244,7 @@ public class DatabaseDocument extends Document
         Vector syns = (Vector)synonyms.get(new Integer(feature.getId()));
         for(int j=0; j<syns.size(); j++)
         {
-          ChadoFeatureSynonym alias = (ChadoFeatureSynonym)syns.get(j);
+          FeatureSynonym alias = (FeatureSynonym)syns.get(j);
           System.out.print(" "+alias.getSynonym().getCvterm().getName()+
                            "="+alias.getSynonym().getName());
         }*/