diff --git a/artemis_sqlmap/Feature.xml b/artemis_sqlmap/Feature.xml
index bfe711ed7ffe09430e2a76f882e9a720583ac571..a6d6c005e1a751531aef7f03ed905212ea360eae 100644
--- a/artemis_sqlmap/Feature.xml
+++ b/artemis_sqlmap/Feature.xml
@@ -36,6 +36,8 @@
         <result property="featureprop.value" column="value"/>
      </resultMap>
 
+    <!-- mapping for feature table and lazy loading of feature_dbxref, feature_relationship,
+         featureprop, organism tables -->
     <resultMap id="select-feature-result" 
                class="ChadoFeature">     
         <result property="schema" column="schema" />  
@@ -44,23 +46,17 @@
         <result property="uniquename" column="uniquename"/>
         <result property="name" column="name"/>
         <result property="length" column="length" nullValue="-999" />
-  	    <result property="featureloc.srcfeature_id" column="srcfeature_id" nullValue="-999" />
-        <result property="featureloc.fmin" column="fmin" nullValue="-999" />
-        <result property="featureloc.fmax" column="fmax" nullValue="-999" />
-        <result property="featureloc.strand" column="strand" nullValue="0" />
-        <result property="featureloc.phase"  column="phase" nullValue="0" />
         <result property="cvterm" column="type_id" select="selectCvterm" />
+        <result property="featurelocsForFeatureId" column="{schema=schema, id=id}" 
+                                                   select="getFeatureLoc" />
         <result property="featurepropList" column="{schema=schema, feature_id=id}" 
                                            select="selectFeatureProp" />
+        <result property="featureDbxrefs" column="{schema=schema, id=id}"
+                                          select="getDbxref" />
         <result property="featureRelationshipsForObjectId" column="{schema=schema, object_id=id}" 
                                            select="getFeatureRelationship" />  
         <result property="featureRelationshipsForSubjectId" column="{schema=schema, subject_id=id}" 
                                            select="getFeatureRelationship" />                         
-        <!-- 
-        <result property="featureprop.cvterm" column="prop_type_id" select="selectCvterm" />
-        <result property="featureprop.value" column="value" />
-        <result property="featureprop.rank" column="rank" />
-        -->
         <result property="organism" column="organism_id" select="getOrganism" />
      </resultMap>
      
@@ -95,7 +91,18 @@
         <result property="cvterm" column="type_id" select="selectCvterm" />
      </resultMap>
      
-     
+     <resultMap id="select-location"
+                class="uk.ac.sanger.artemis.chado.ChadoFeatureLoc">
+        <result property="srcfeature_id" column="srcfeature_id" nullValue="-999" />
+        <result property="fmin"   column="fmin"   nullValue="-999" />
+        <result property="fmax"   column="fmax"   nullValue="-999" />
+        <result property="strand" column="strand" nullValue="0" />
+        <result property="phase"  column="phase"  nullValue="0" />
+        <result property="residue_info"  column="residue_info"/>
+        <result property="locgroup"  column="locgroup"/>
+        <result property="rank"      column="rank"/>
+     </resultMap>
+        
      <!-- select featureprops e.g. for lazy loading -->
      <select id="selectFeatureProp" resultMap="select-product-result">
        SELECT type_id, value, rank 
@@ -118,6 +125,13 @@
          </dynamic>
      </select>
      
+     <!--  select featureloc -->
+     <select id="getFeatureLoc" resultMap="select-location">
+       SELECT srcfeature_id, fmin, fmax, strand, phase, residue_info, locgroup, rank
+       FROM  $schema$.featureloc
+       WHERE $schema$.featureloc.feature_id=#id#
+     </select>
+     
      <select id="getFeatureName" parameterClass="ChadoFeature" 
                                  resultClass="java.lang.String"> 
    	   SELECT name
@@ -186,7 +200,7 @@
     </select>
 
 
-    <select id="getSchemaResidueFeatures" parameterMap="schema-cvlist"
+    <select id="getResidueFeatures" parameterMap="schema-cvlist"
             resultMap="select-feature-with-residues-result">
        SELECT
          abbreviation,
@@ -213,34 +227,31 @@
 	 	organism_id,
 		name,
 	 	f.type_id,
-		seqlen AS length,
+		seqlen AS length
+		<!--
 	 	srcfeature_id,
 	 	fmin,
 	 	fmax,
 	 	strand,
 	 	phase
-	 	<!-- 
-	 	,fp.type_id AS prop_type_id
-	 	,fp.value
-	 	,fp.rank
 	 	-->
 	 FROM $schema$.feature f
+	 <!--
 	 LEFT JOIN $schema$.featureloc     ON f.feature_id=$schema$.featureloc.feature_id
-	 <!-- 
 	 LEFT JOIN $schema$.featureprop fp ON fp.feature_id = f.feature_id
 	 -->
 	 WHERE
-	 <dynamic>
-             <isGreaterThan property="id" compareValue="0"> 
-               f.feature_id=$id$ AND
-             </isGreaterThan>
-             <isNotNull property="uniquename">                        
-               uniquename LIKE #uniquename# AND
-             </isNotNull>
-             <isGreaterThan property="cvterm.cvtermId" compareValue="0"> 
-               $schema$.feature.type_id=$cvterm.cvtermId$ AND
-             </isGreaterThan>
-         </dynamic>
+	   <dynamic>
+          <isGreaterThan property="id" compareValue="0"> 
+            f.feature_id=$id$ AND
+          </isGreaterThan>
+          <isNotNull property="uniquename">                        
+            uniquename LIKE #uniquename# AND
+          </isNotNull>
+          <isGreaterThan property="cvterm.cvtermId" compareValue="0"> 
+            $schema$.feature.type_id=$cvterm.cvtermId$ AND
+          </isGreaterThan>
+       </dynamic>
          f.feature_id > 0
     </select>