diff --git a/plasmid/source/core-plugins/weismigration/1/dss/drop-boxes/weismigration/migration.py b/plasmid/source/core-plugins/weismigration/1/dss/drop-boxes/weismigration/migration.py
index f3936d9ecab9e1ed62f7418a2865a5dc641c99d5..ce03c48b8f9026aab5d13ba983e676fd46c8c88d 100644
--- a/plasmid/source/core-plugins/weismigration/1/dss/drop-boxes/weismigration/migration.py
+++ b/plasmid/source/core-plugins/weismigration/1/dss/drop-boxes/weismigration/migration.py
@@ -195,37 +195,37 @@ def setPlasmidParents(tr, definition, entity, properties):
             if propertyValue is not None and propertyDefinition[0] == "PCR_3_OLIGO" or propertyDefinition[0] == "PCR_5_OLIGO":
                 propertyValue =  unicode(propertyValue)
                 if re.match ("UC# ", propertyValue) and not re.search("/", propertyValue):
-                    parentCode = "/MATERIALS/"+ propertyValue.replace("UC# ", "US").strip(" ")
+                    parentCode = "/MATERIALS/"+ propertyValue.replace("UC# ", "UC").strip(" ")
                     currentParentsList = entity.getParentSampleIdentifiers()
                     currentParentsList.add(parentCode)
                     entity.setParentSampleIdentifiers(currentParentsList)
                 elif re.match ("UC#", propertyValue) and not re.search("/", propertyValue):
-                    parentCode= "/MATERIALS/"+ propertyValue.replace("UC#", "US").strip(" ")
+                    parentCode= "/MATERIALS/"+ propertyValue.replace("UC#", "UC").strip(" ")
                     currentParentsList = entity.getParentSampleIdentifiers()
                     currentParentsList.add(parentCode)
                     entity.setParentSampleIdentifiers(currentParentsList)
                 elif re.match ("UC #", propertyValue) and not re.search("/", propertyValue):
-                    parentCode= "/MATERIALS/"+ propertyValue.replace("UC #", "US").strip(" ")
+                    parentCode= "/MATERIALS/"+ propertyValue.replace("UC #", "UC").strip(" ")
                     currentParentsList = entity.getParentSampleIdentifiers()
                     currentParentsList.add(parentCode)
                     entity.setParentSampleIdentifiers(currentParentsList)
                 elif re.match ("UC ", propertyValue) and not re.search("/", propertyValue):
-                    parentCode="/MATERIALS/"+  propertyValue.replace("UC ", "US").strip(" ")
+                    parentCode="/MATERIALS/"+  propertyValue.replace("UC ", "UC").strip(" ")
                     currentParentsList = entity.getParentSampleIdentifiers()
                     currentParentsList.add(parentCode)
                     entity.setParentSampleIdentifiers(currentParentsList)
                 elif re.match ("UC1388cc", propertyValue):
-                    parentCode="/MATERIALS/"+  propertyValue.replace("UC1388cc", "US1388").strip(" ")
+                    parentCode="/MATERIALS/"+  propertyValue.replace("UC1388cc", "UC1388").strip(" ")
                     currentParentsList = entity.getParentSampleIdentifiers()
                     currentParentsList.add(parentCode)
                     entity.setParentSampleIdentifiers(currentParentsList) 
                 elif re.match ("UC2396c", propertyValue):
-                    parentCode="/MATERIALS/"+  propertyValue.replace("UC2396c", "US2396").strip(" ")
+                    parentCode="/MATERIALS/"+  propertyValue.replace("UC2396c", "UC2396").strip(" ")
                     currentParentsList = entity.getParentSampleIdentifiers()
                     currentParentsList.add(parentCode)
                     entity.setParentSampleIdentifiers(currentParentsList)                                               
                 elif re.match ("UC", propertyValue) and not re.search("/", propertyValue):
-                    parentCode= "/MATERIALS/"+ propertyValue.replace("UC", "US").strip(" ")
+                    parentCode= "/MATERIALS/"+ propertyValue.strip(" ")
                     currentParentsList = entity.getParentSampleIdentifiers()
                     currentParentsList.add(parentCode)
                     entity.setParentSampleIdentifiers(currentParentsList)
@@ -234,6 +234,13 @@ def setPlasmidParents(tr, definition, entity, properties):
                     currentParentsList = entity.getParentSampleIdentifiers()
                     currentParentsList.add(parentCode)
                     entity.setParentSampleIdentifiers(currentParentsList)
+                elif re.match ("Ch", propertyValue):
+                    parentCode="/MATERIALS/"+ propertyValue.replace("Ch", "CH").strip(" ")
+                    currentParentsList = entity.getParentSampleIdentifiers()
+                    currentParentsList.add(parentCode)
+                    entity.setParentSampleIdentifiers(currentParentsList)
+                else:
+                    print  "PARENT NOT SET: ", propertyDefinition[0] , propertyValue
              
  
 
@@ -368,7 +375,7 @@ class FileMakerEntityAdaptor(EntityAdaptor):
 ##
 ## Customer specific logic: different sample types
 ##
-class FMPeterOpenBISDTO(OpenBISDTO):
+class FMOpenBISDTO(OpenBISDTO):
         def isSampleCacheable(self):
             return True
         
@@ -379,6 +386,7 @@ class FMPeterOpenBISDTO(OpenBISDTO):
                     sampleID2Sample[self.values["NAME"]] = self.values
                 sample = getSampleForUpdate("/MATERIALS/"+code, None, tr)
                 if sample is not None:
+                    #needs_update = db_val != prop_val
                     lastModificationData = self.values["MODIFICATION_DATE"].strip()
                     lastModificationData = str(datetime.strptime(lastModificationData, "%Y-%m-%d"))[:10]
                     lastModificationOpenBIS = sample.getPropertyValue("MODIFICATION_DATE")[:10]
@@ -389,13 +397,13 @@ class FMPeterOpenBISDTO(OpenBISDTO):
                 print "* ERROR [" + str(code) + "] - Invalid Code found for '" + self.__class__.__name__ + "'"
                 raise Exception('Invalid Code found ' + str(code))
 
-class FMPeterMultipleValuesAdaptor(FileMakerEntityAdaptor):
+class FMMultipleValuesAdaptor(FileMakerEntityAdaptor):
     selectMultipleValuesQuery = None
     entityIdFieldName = None
     entityCodeFieldName = None
     
     def addEntity(self, values):
-        self.entities.append(FMPeterEntityMultipleValuesOpenBISDTO(values, self.definition))
+        self.entities.append(FMEntityMultipleValuesOpenBISDTO(values, self.definition))
         
     def init(self):
         print "Reading MultipleValueses for: " + self.__class__.__name__
@@ -409,12 +417,12 @@ class FMPeterMultipleValuesAdaptor(FileMakerEntityAdaptor):
             if entityId is not None:
                 if entityId in sampleID2Sample:
                     entityNumber = sampleID2Sample[entityId][self.entityCodeFieldName]
+                    print "entityNumber: ", entityNumber, entityId
                     if entityNumber is not None:
                         values = {}
                         values["DISRUPTIONS"] = result.getString("disruptions")
                         values["MARKERS"] = result.getString("markers")
                         values["UNMARKED_MUTATIONS"] = result.getString("unmarked mutations")
-
                         
                         allMultipleValueses = []
                         if entityNumber in MultipleValueses:
@@ -440,7 +448,7 @@ class FMPeterMultipleValuesAdaptor(FileMakerEntityAdaptor):
         result.close()
         preparedStatement.close()
 
-class FMPeterEntityMultipleValuesOpenBISDTO(OpenBISDTO):
+class FMEntityMultipleValuesOpenBISDTO(OpenBISDTO):
     def getIdentifier(self, tr):
         return self.values["*CODE"]
     
@@ -460,8 +468,7 @@ class FMPeterEntityMultipleValuesOpenBISDTO(OpenBISDTO):
             for propertyCode, propertyValue in MultipleValues.iteritems():
                 
                 if propertyValue is not None:
-                    propertyValue =  unicode(propertyValue)
-                    print "PROPCODE", propertyCode, str(MultipleValuesNum), propertyValue
+                    propertyValue = unicode(propertyValue)
                     sample.setPropertyValue(propertyCode + "_" + str(MultipleValuesNum), propertyValue)
     
     def isMultipleValuesPressent(self, MultipleValuesSignature, tr):
@@ -471,10 +478,10 @@ class FMPeterEntityMultipleValuesOpenBISDTO(OpenBISDTO):
                 storedSignature = "";
                 for propertyCode in definitions.getRepetitionPropertyCodes():
                     propertyValue = sample.getPropertyValue(propertyCode + "_" + str(MultipleValuesNum))
-                    print propertyCode+ "_" + str(MultipleValuesNum), propertyValue
+                  
                     if propertyValue is not None:
                         propertyValue = unicode(propertyValue)
-                        storedSignature += propertyValue                       
+                        storedSignature += propertyValue 
                 if storedSignature == MultipleValuesSignature:
                     #print "Found MultipleValues " + storedSignature.encode('ascii', 'ignore')
                     return True
@@ -485,13 +492,16 @@ class FMPeterEntityMultipleValuesOpenBISDTO(OpenBISDTO):
             MultipleValuesSignature = "";
             for propertyCode in definitions.getRepetitionPropertyCodes():
                 propertyValue = MultipleValues[propertyCode]
-                   
+                #print "propertyValue = MultipleValues[propertyCode]: " ,   propertyValue
                 if propertyValue is not None:
                     propertyValue = unicode(propertyValue)
                     MultipleValuesSignature += propertyValue
             if not self.isMultipleValuesPressent(MultipleValuesSignature, tr):
                 return False
         return True
+
+
+
 ##
 ## Antibodies
 ##
@@ -507,7 +517,7 @@ class AntibodyAdaptor(FileMakerEntityAdaptor):
         self.entities.append(AntibodyOpenBISDTO(values, self.definition))
        
         
-class AntibodyOpenBISDTO(FMPeterOpenBISDTO):
+class AntibodyOpenBISDTO(FMOpenBISDTO):
     def isSampleCacheable(self):
         return False
         
@@ -534,27 +544,26 @@ class AntibodyOpenBISDTO(FMPeterOpenBISDTO):
 class StrainAdaptor(FileMakerEntityAdaptor):
     
     def init(self):
-        self.selectQuery = "SELECT * FROM \"Weis Lab Yeast Strains\""
+        self.selectQuery = "SELECT * FROM \"Weis Lab Yeast Strains\" "
         self.definition = definitions.strainDefinition
         FileMakerEntityAdaptor.init(self)
     
     def addEntity(self, values):
         self.entities.append(StrainOpenBISDTO(values, self.definition))
         
-class StrainOpenBISDTO(FMPeterOpenBISDTO):
+class StrainOpenBISDTO(FMOpenBISDTO):
     def write(self, tr):
         code = self.values["NAME"]
         if code is not None:
             sample = getSampleForUpdate("/MATERIALS/"+code,"STRAIN", tr)
             setEntityProperties(tr, self.definition, sample, self.values)
-            print setEntityProperties(tr, self.definition, sample, self.values)
-        
+ 
             
     def getIdentifier(self, tr):
         code = self.values["NAME"]
         return code
 
-class StrainMultipleValuesAdaptor(FMPeterMultipleValuesAdaptor):
+class StrainMultipleValuesAdaptor(FMMultipleValuesAdaptor):
     selectMultipleValuesQuery = "SELECT * FROM \"Weis Lab Yeast Strains\""
     entityIdFieldName = "KWY number"
     entityCodeFieldName = "NAME"
@@ -571,7 +580,7 @@ class PlasmidAdaptor(FileMakerEntityAdaptor):
     def addEntity(self, values):
         self.entities.append(PlasmidOpenBISDTO(values, self.definition))
         
-class PlasmidOpenBISDTO(FMPeterOpenBISDTO):
+class PlasmidOpenBISDTO(FMOpenBISDTO):
     def write(self, tr):
         code = "PKW" + self.values["NAME"]
         if code is not None:
@@ -599,11 +608,18 @@ class OligoAdaptor(FileMakerEntityAdaptor):
     def addEntity(self, values):
         self.entities.append(OligoOpenBISDTO(values, self.definition))
         
-class OligoOpenBISDTO(FMPeterOpenBISDTO):
+class OligoOpenBISDTO(FMOpenBISDTO):
     def write(self, tr):
         code = self.values["NAME"]
         if code is not None:
-            sample = getSampleForUpdate("/MATERIALS/"+code,"OLIGO", tr)
+            if re.search("CHCH", code): 
+                code = code.replace("CHCH", "CH")                
+                sample = getSampleForUpdate("/MATERIALS/"+code,"OLIGO", tr)
+            elif re.search("CH", code):
+                sample = getSampleForUpdate("/MATERIALS/"+code,"OLIGO", tr)                
+            elif re.search("US", code):
+                code = code.replace("US", "UC")
+                sample = getSampleForUpdate("/MATERIALS/"+code,"OLIGO", tr)
             setEntityProperties(tr, self.definition, sample, self.values);
     
     def getIdentifier(self, tr):
@@ -626,7 +642,7 @@ class ChemicalAdaptor(FileMakerEntityAdaptor):
         self.entities.append(ChemicalOpenBISDTO(values, self.definition))
        
         
-class ChemicalOpenBISDTO(FMPeterOpenBISDTO):
+class ChemicalOpenBISDTO(FMOpenBISDTO):
     def isSampleCacheable(self):
         return False
         
@@ -652,7 +668,7 @@ class EnzymeAdaptor(FileMakerEntityAdaptor):
     def addEntity(self, values):
         self.entities.append(EnzymeOpenBISDTO(values, self.definition))
         
-class EnzymeOpenBISDTO(FMPeterOpenBISDTO):
+class EnzymeOpenBISDTO(FMOpenBISDTO):
     def isSampleCacheable(self):
             return False
     
@@ -671,35 +687,21 @@ class EnzymeOpenBISDTO(FMPeterOpenBISDTO):
 
 
         
-#fmConnString = "jdbc:filemaker://127.0.0.1/"
-fmConnString = "jdbc:filemaker://fmsrv.ethz.ch/"
+fmConnString = "jdbc:filemaker://127.0.0.1/"
+#fmConnString = "jdbc:filemaker://fmsrv.ethz.ch/"
 fmUser= "admin"
 fmPass = "nucleus"
 
-# adaptors = [ AntibodyAdaptor(fmConnString, fmUser, fmPass, "MultipleValuesIT_antibodies_Peter"), 
-#              AntibodyMultipleValuesAdaptor(fmConnString, fmUser, fmPass, "MultipleValuesIT_antibody_MultipleValueses_Peter"),
-#              PlasmidAdaptor(fmConnString, fmUser, fmPass, "MultipleValuesIT_plasmids_Peter"),
-#              PlasmidMultipleValuesAdaptor(fmConnString, fmUser, fmPass, "MultipleValuesIT_plasmid_MultipleValueses_Peter"),
-#              StrainAdaptor(fmConnString, fmUser, fmPass, "MultipleValuesIT_strains_Peter"),
-#              StrainMultipleValuesAdaptor(fmConnString, fmUser, fmPass, "MultipleValuesIT_strain_MultipleValueses_Peter"),
-#              OligoAdaptor(fmConnString, fmUser, fmPass, "MultipleValuesIT_oligos_Peter"),
-#              OligoMultipleValuesAdaptor(fmConnString, fmUser, fmPass, "MultipleValuesIT_oligo_MultipleValueses_Peter"),
-#              CellAdaptor(fmConnString, fmUser, fmPass, "MultipleValuesIT_cells_Peter"),
-#              CellMultipleValuesAdaptor(fmConnString, fmUser, fmPass, "MultipleValuesIT_cell_MultipleValueses_Peter"),
-#              SirnaAdaptor(fmConnString, fmUser, fmPass, "MultipleValuesIT_Main_Menu_Peter"),
-#              ChemicalAdaptor(fmConnString, fmUser, fmPass, "MultipleValuesIT_Main_Menu_Peter"),
-#              DocumentsAdaptor(fmConnString, fmUser, fmPass, "MultipleValuesIT_documents_Peter")]
-           
 
 
 adaptors = [ 
              #EnzymeAdaptor(fmConnString, fmUser, fmPass, "Weis_Restriction_enzymes"),
-             #hemicalAdaptor(fmConnString, fmUser, fmPass, "Weis_Chemicals"),
+             #ChemicalAdaptor(fmConnString, fmUser, fmPass, "Weis_Chemicals"),
              #AntibodyAdaptor(fmConnString, fmUser, fmPass, "Weis _Antibodies"),
              #OligoAdaptor(fmConnString, fmUser, fmPass, "Weis_Oligos"),
-             #PlasmidAdaptor(fmConnString, fmUser, fmPass, "Weis_Plasmids"),
-             StrainAdaptor(fmConnString, fmUser, fmPass, "Weis_Yeast_Strains"),
-             StrainMultipleValuesAdaptor(fmConnString, fmUser, fmPass, "Weis_Yeast_Strains")
+             PlasmidAdaptor(fmConnString, fmUser, fmPass, "Weis_Plasmids"),
+             #StrainAdaptor(fmConnString, fmUser, fmPass, "Weis_Yeast_Strains_070715_Clone_for_testing2"),
+             #StrainMultipleValuesAdaptor(fmConnString, fmUser, fmPass, "Weis_Yeast_Strains_070715_Clone_for_testing2")
              ]