diff --git a/modules/mol/base/src/chem_class.hh b/modules/mol/base/src/chem_class.hh
index 14581ac5b0925f74e5fbc12a44f65a67eeff7416..2146b300df44586b13dbe0d479ed4922b48ba9db 100644
--- a/modules/mol/base/src/chem_class.hh
+++ b/modules/mol/base/src/chem_class.hh
@@ -26,68 +26,60 @@ namespace ost { namespace mol {
 
 struct DLLEXPORT ChemClass {
 
-  static constexpr char PEPTIDE_LINKING   ='P';
-  static constexpr char D_PEPTIDE_LINKING ='D';
-  static constexpr char L_PEPTIDE_LINKING ='L';
-  static constexpr char RNA_LINKING       ='R';
-  static constexpr char DNA_LINKING       ='S';
-  static constexpr char NON_POLYMER       ='N';
-  static constexpr char L_SACCHARIDE      ='X';
-  static constexpr char D_SACCHARIDE      ='Y';
-  static constexpr char SACCHARIDE        ='Z';
-  static constexpr char WATER             ='W';
-  static constexpr char UNKNOWN           ='U';
+  typedef enum {
+    PEPTIDE_LINKING   ='P',
+    D_PEPTIDE_LINKING ='D',
+    L_PEPTIDE_LINKING ='L',
+    RNA_LINKING       ='R',
+    DNA_LINKING       ='S',
+    NON_POLYMER       ='N',
+    L_SACCHARIDE      ='X',
+    D_SACCHARIDE      ='Y',
+    SACCHARIDE        ='Z',
+    WATER             ='W',
+    UNKNOWN           ='U'
+  } Type;
   
-  // for backward compatibility to 1.1 and earlier
-  static constexpr char PeptideLinking   =PEPTIDE_LINKING;
-  static constexpr char DPeptideLinking  =D_PEPTIDE_LINKING;
-  static constexpr char LPeptideLinking  =L_PEPTIDE_LINKING;
-  static constexpr char RNALinking       =RNA_LINKING;  
-  static constexpr char DNALinking       =DNA_LINKING;    
-  static constexpr char NonPolymer       =NON_POLYMER;
-  static constexpr char LSaccharide      =L_SACCHARIDE;
-  static constexpr char DSaccharide      =D_SACCHARIDE;    
-  static constexpr char Saccharide       =SACCHARIDE;
-  static constexpr char Water            =WATER;
-  static constexpr char Unknown          =UNKNOWN;
-  explicit ChemClass(char chem_class)
-    : chem_class_(chem_class) {
-  }
+  explicit ChemClass(Type chem_class): chem_class_(chem_class) { }
+
+  explicit ChemClass(char type): chem_class_(Type(type)) { }
+
+  ChemClass(): chem_class_(UNKNOWN) { }
 
-  ChemClass()
-    : chem_class_(UNKNOWN) {
-  }
   bool operator==(const ChemClass& cc) const {
-    return cc.chem_class_==chem_class_;
+    return cc.chem_class_ == chem_class_;
   }
 
   bool operator!=(const ChemClass& cc) const {
-    return !this->operator==(cc);
+    return !this->operator == (cc);
   }
 
   bool IsPeptideLinking() const {
-    return (chem_class_==ChemClass::PEPTIDE_LINKING ||
-            chem_class_==ChemClass::D_PEPTIDE_LINKING ||
-            chem_class_==ChemClass::L_PEPTIDE_LINKING);
+    return (chem_class_ == PEPTIDE_LINKING ||
+            chem_class_ == D_PEPTIDE_LINKING ||
+            chem_class_ == L_PEPTIDE_LINKING);
   }
   bool IsNucleotideLinking() const {
-    return (chem_class_==ChemClass::DNA_LINKING || 
-            chem_class_==ChemClass::RNA_LINKING);
+    return (chem_class_ == DNA_LINKING || 
+            chem_class_ == RNA_LINKING);
   }
   
-  bool IsWater() const { return chem_class_==ChemClass::WATER; }
+  bool IsWater() const {
+    return chem_class_ == WATER;
+  }
+
   operator char() const {
     return chem_class_;
   }
 
   bool IsSaccharide() const {
-    return (chem_class_==ChemClass::SACCHARIDE ||
-            chem_class_==ChemClass::L_SACCHARIDE ||
-            chem_class_==ChemClass::D_SACCHARIDE);
+    return (chem_class_ == SACCHARIDE ||
+            chem_class_ == L_SACCHARIDE ||
+            chem_class_ == D_SACCHARIDE);
   }
 
 private:
-  char chem_class_;
+  Type chem_class_;
 };
 
 }} // ns