Index: cpp/f8-to-f1/conv_f8tof1.cpp
===================================================================
--- cpp/f8-to-f1/conv_f8tof1.cpp	(revision 34)
+++ cpp/f8-to-f1/conv_f8tof1.cpp	(revision 35)
@@ -27,34 +27,20 @@
 using namespace std;
 
-Lsystem::Lsystem() {
-	PrimitiveProduction *pp1 = new PrimitiveProduction(SString("X"));
-	this->primitiveProductions.insert(make_pair("X", pp1));
-	PrimitiveProduction *pp2 = new PrimitiveProduction(SString("R"));
-	this->primitiveProductions.insert(make_pair("R", pp2));
-	PrimitiveProduction *pp3 = new PrimitiveProduction(SString("r"));
-	this->primitiveProductions.insert(make_pair("r", pp3));
-	PrimitiveProduction *pp4 = new PrimitiveProduction(SString("C"));
-	this->primitiveProductions.insert(make_pair("C", pp4));
-	PrimitiveProduction *pp5 = new PrimitiveProduction(SString("c"));
-	this->primitiveProductions.insert(make_pair("c", pp5));
-	PrimitiveProduction *pp6 = new PrimitiveProduction(SString("Q"));
-	this->primitiveProductions.insert(make_pair("Q", pp6));
-	PrimitiveProduction *pp7 = new PrimitiveProduction(SString("q"));
-	this->primitiveProductions.insert(make_pair("q", pp7));
-	PrimitiveProduction *pp8 = new PrimitiveProduction(SString("["));
-	this->primitiveProductions.insert(make_pair("[", pp8));
-	PrimitiveProduction *pp9 = new PrimitiveProduction(SString("]"));
-	this->primitiveProductions.insert(make_pair("]", pp9));
-	PrimitiveProduction *pp10 = new PrimitiveProduction(SString("^"));
-	this->primitiveProductions.insert(make_pair("^", pp10));
-	
-}
-		 
+Lsystem::Lsystem()
+{
+        for(int i=0;i<strlen(GenoConv_F8ToF1::simpleprods);i++)
+        {
+                string s(1,GenoConv_F8ToF1::simpleprods[i]);
+                SString ss(s.c_str());
+        	this->primitiveProductions.insert(make_pair(s, new PrimitiveProduction(ss)));
+        }
+}
+
 Lsystem::~Lsystem() {
-	for (map<string, Production*>::iterator iter = this->productions.begin(); 
+	for (map<string, Production*>::iterator iter = this->productions.begin();
 		 iter != this->productions.end(); iter++) {
 		delete iter->second;
 	}
-	for (map<string, PrimitiveProduction*>::iterator iter = this->primitiveProductions.begin(); 
+	for (map<string, PrimitiveProduction*>::iterator iter = this->primitiveProductions.begin();
 		 iter != this->primitiveProductions.end(); iter++) {
 		delete iter->second;
@@ -524,4 +510,7 @@
 
 
+const char* GenoConv_F8ToF1::simpleprods="X[]^RrLlAaCcFfMmSsIiQqWw"; //Ee skipped
+
+
 #define FIELDSTRUCT GenoConv_F8ToF1
 
Index: cpp/f8-to-f1/conv_f8tof1.h
===================================================================
--- cpp/f8-to-f1/conv_f8tof1.h	(revision 34)
+++ cpp/f8-to-f1/conv_f8tof1.h	(revision 35)
@@ -249,4 +249,6 @@
 
 	int maxF1Length;
+        static const char* simpleprods; 
+
 protected:
 	bool parseInput(const char* src, Lsystem* lsys);
Index: cpp/f8-to-f1/geno_f8.cpp
===================================================================
--- cpp/f8-to-f1/geno_f8.cpp	(revision 34)
+++ cpp/f8-to-f1/geno_f8.cpp	(revision 35)
@@ -50,16 +50,11 @@
 }
 
-Geno_f8::Geno_f8() {
+Geno_f8::Geno_f8()
+{
 	supported_format = '8';
-	this->simpleCommandLetters.push_back('X');
-	this->simpleCommandLetters.push_back('R');
-	this->simpleCommandLetters.push_back('r');
-	this->simpleCommandLetters.push_back('C');
-	this->simpleCommandLetters.push_back('c');
-	this->simpleCommandLetters.push_back('Q');
-	this->simpleCommandLetters.push_back('q');
-	this->simpleCommandLetters.push_back('[');
-	this->simpleCommandLetters.push_back(']');
-	this->simpleCommandLetters.push_back('^');
+
+        for(int i=0;i<strlen(GenoConv_F8ToF1::simpleprods);i++)
+	        this->simpleCommandLetters.push_back(GenoConv_F8ToF1::simpleprods[i]);
+                
 	this->converter = new GenoConv_F8ToF1();
 
@@ -301,5 +296,5 @@
 SString Geno_f8::mutateChangeArg(SString &in, float& chg) {
 	SString mutated;
-	
+
 	Lsystem *newLsystem = this->converter->createLsystem(in);
 	if (newLsystem == NULL) {
@@ -1087,5 +1082,5 @@
 	
 #if GENO_F8_DEBUG > 0
-	string mutationName = (method == 0) ? "F8_CHANGE_BEGINNING_ARG" :
+	string mutationName = (method == 0) ? "F8_CHANGE_BEGINNING_ARG" : //TODO use mutation_method_names[] here
 	(method == 1) ? "F8_CHANGE_ARG" :
 	(method == 2) ? "F8_DELETE_COMMAND" :
