diff --git a/tools/oneclick/base/mmm_config.py b/tools/oneclick/base/mmm_config.py
index a7e9b70a78076203ffce8903d879cc8b9b601b67..e0062541dd16e963f1865eaf16908a43057dd3e7 100644
--- a/tools/oneclick/base/mmm_config.py
+++ b/tools/oneclick/base/mmm_config.py
@@ -41,43 +41,62 @@ peripherals_vhdl2python = { 'reg_wdi'             : "reg_wdi",\
 
 class MmmConfig:
 
-    def __init__(self, mmmRootDir = os.environ['RADIOHDL'], mmmFileName='mmm.cfg', mmmLibraryName=''):
+    def __init__(self, mmmRootDir = os.environ['RADIOHDL'], mmmFileName='', mmmLibraryName=''):
         """
         """
-        self.mmmRootDir = mmmRootDir
-        self.mmmFileName = mmmFileName
-        self.mmmLibraryName = mmmLibraryName
-        # mmm config files
-        self.mmm = common_dict_file.CommonDictFile(mmmRootDir, mmmFileName)        # library dict files
-        if self.mmm.nof_dicts==0: sys.exit('Error : No mmm config file found')
-        if self.mmmLibraryName=='': sys.exit('Error: No mmmLibraryName specified');
+        self.mmmRootDir         = mmmRootDir
+        self.mmmFileName        = mmmFileName
+        self.mmmLibraryName     = mmmLibraryName
+        self.peripherals        = []
+        self.input_clks         = []
+        self.board_select       = 'unb1' 
+        self.designName         = ''
+        self.mmmName            = ''
+        self.VhdlOutputPath     = ''
+        self.VhdlFileName       = ''
+        self.QsysName           = ''
+        self.QsysFileName       = ''
+        self.custom_peripherals = []  
+        self.board_peripherals  = []
         
-        for d in self.mmm.dicts:
-            name = self.mmm.get_key_value('mmm_name', d)
-            if name == mmmLibraryName:
-                self.mmm.remove_all_but_the_dict_from_list(d)
-        
-        self.board_select = self.mmm.get_key_values('board_select')
-        
-        if self.board_select == 'unb1':
-            self.board_peripherals_path = mmmRootDir + "/boards/uniboard1/libraries/unb1_board/unb1_board_peripherals.cfg"
-        elif self.board_select == 'unb2':
-            self.board_peripherals_path = mmmRootDir + "/boards/uniboard2/libraries/unb2_board/unb2_board_peripherals.cfg"
-        
-        self.board_peripherals_dict = self.mmm.read_dict_file(self.board_peripherals_path , ' ')
-        self.board_peripherals      = self.chunks(self.mmm.get_key_values('board_peripherals', dicts=self.board_peripherals_dict).split(), 3)
-        
-        # Keep list of HDL library names
-        self.designName                  = self.mmm.get_key_values('mmm_name')
-        self.mmmName                     = "mmm_" + self.mmm.get_key_values('mmm_name')
-        self.VhdlOutputPath              = cm.expand_file_path_name(self.mmm.get_key_values('vhdl_output_path'), self.mmm.filePaths[0])
-        self.VhdlFileName                = self.mmmName + '.vhd'
-        self.QsysName                    = "qsys_" + self.designName
-        self.QsysFileName                = self.QsysName + '.vhd'
-        self.input_clks                  = self.mmm.get_key_values('input_clks') 
-        self.custom_peripherals_temp     = self.mmm.get_key_values('custom_peripherals').split() 
-        self.custom_peripherals          = self.chunks(self.custom_peripherals_temp, 3)
-        self.peripherals                 = self.board_peripherals + self.custom_peripherals
+        # mmm config from files
+        if self.mmmFileName != '':
+            self.mmm = common_dict_file.CommonDictFile(mmmRootDir, mmmFileName)        # library dict files
+            if self.mmm.nof_dicts==0: sys.exit('Error : No mmm config file found')
+            if self.mmmLibraryName=='': sys.exit('Error: No mmmLibraryName specified');
+            
+            for d in self.mmm.dicts:
+                name = self.mmm.get_key_value('mmm_name', d)
+                if name == mmmLibraryName:
+                    self.mmm.remove_all_but_the_dict_from_list(d)     
+                    
+            self.designName              = self.mmm.get_key_values('mmm_name')
+            self.mmmName                 = "mmm_" + self.mmm.get_key_values('mmm_name')
+            self.VhdlOutputPath          = cm.expand_file_path_name(self.mmm.get_key_values('vhdl_output_path'), self.mmm.filePaths[0])
+            self.VhdlFileName            = self.mmmName + '.vhd'
+            self.QsysName                = "qsys_" + self.designName
+            self.QsysFileName            = self.QsysName + '.vhd'
+            self.input_clks              = self.mmm.get_key_values('input_clks') 
+            self.custom_peripherals_temp = self.mmm.get_key_values('custom_peripherals').split() 
+            self.custom_peripherals      = self.chunks(self.custom_peripherals_temp, 3)
+            self.board_select            = self.mmm.get_key_values('board_select')    
+
+            if self.board_select == 'unb1':
+                self.board_peripherals_path = mmmRootDir + "/boards/uniboard1/libraries/unb1_board/unb1_board_peripherals.cfg"
+            elif self.board_select == 'unb2':
+                self.board_peripherals_path = mmmRootDir + "/boards/uniboard2/libraries/unb2_board/unb2_board_peripherals.cfg"
+            
+            self.board_peripherals_dict = self.mmm.read_dict_file(self.board_peripherals_path , ' ')
+            self.board_peripherals      = self.chunks(self.mmm.get_key_values('board_peripherals', dicts=self.board_peripherals_dict).split(), 3)
+            
+        self.peripherals            = self.board_peripherals + self.custom_peripherals
+    
+    def add_peripheral(self, peripheral):
+        self.custom_peripherals.append(peripheral)                                  
+        self.peripherals = self.board_peripherals + self.custom_peripherals
+    
+    def add_input_clk(self, input_clk):
+        self.input_clks.append(input_clk)
          
     def chunks(self, l, n):
         n = max(1, n)