diff --git a/FullSimLight/fullSimLight.cc b/FullSimLight/fullSimLight.cc
index c0c7afcf98b53e0312812ad72008c9f50cf6ce56..cc28957586cf921f28c65bfbe8c7b1cd9965fd72 100644
--- a/FullSimLight/fullSimLight.cc
+++ b/FullSimLight/fullSimLight.cc
@@ -41,11 +41,11 @@ static const std::string fullSimLightShareDir=FULLSIMLIGHTSHAREDIR;
 static std::string  parMacroFileName   = fullSimLightShareDir+"/macro.g4";
 static bool         parIsPerformance   = false;
 static bool         parIsCustomUserActions = false;
-static G4String     geometryFileName   ;
+static G4String     geometryFileName   = "";
 static std::string  parPhysListName    = "FTFP_BERT";
 static bool         parRunOverlapCheck = false;
 bool isBatch = true;
-static std::string  parConfigFileName  = "config.json";
+static std::string  parConfigFileName  = "atlas-config.json";
 
 
 
@@ -144,12 +144,12 @@ int main(int argc, char** argv) {
 #endif
     
     // 1. Physics list
-    if(!isBatch){
+    if(!isBatch)
+    {
         
         simConfig::parse_json_file(parConfigFileName);
         parPhysListName = simConfig::fsl.physicsList;
         
-        
         if(simConfig::fsl.eventGeneratorName=="Pythia")
         {
 #if USE_PYTHIA
@@ -180,14 +180,11 @@ int main(int argc, char** argv) {
     // 3. User action
     if(!isBatch && simConfig::fsl.userActions.size()>0) parIsCustomUserActions = true;
     
-    
     FSLActionInitialization* actInit = new FSLActionInitialization(parIsPerformance,parIsCustomUserActions);
     
     if(parIsCustomUserActions){
-    actInit->SetActions(
-                        simConfig::fsl.userActions
-                       );
-
+        actInit->SetActions(simConfig::fsl.userActions);
+        
     }
     
     if(!isBatch)
@@ -218,27 +215,23 @@ int main(int argc, char** argv) {
         
     } else
     {
-        
-      //  std::ifstream ifs(parConfigFileName);
-       // auto jf=json::parse(ifs);
-        
-      //  simConfig::fslConfig fsl;
-      //  simConfig::regionConfig rc;
-        
-        //read and store the configuration into the fslConfig struct
-      //  simConfig::from_json(jf, fsl);
-        
-        
-        
-        detector->SetGeometryFileName (simConfig::fsl.geometry);
+        if(geometryFileName=="" && simConfig::fsl.geometry==""){
+            G4cout << "  *** ERROR : Geometry file is required. Please provide it in a json configuration file or via command line using the -g flag " << G4endl;
+            Help();
+            exit(-1);
+        }
+        //gives the possibility to override the geometry from the command line
+        if(geometryFileName!="") detector->SetGeometryFileName (geometryFileName);
+        else
+            detector->SetGeometryFileName (simConfig::fsl.geometry);
         runManager->SetUserInitialization(detector);
         
+        
         if(simConfig::fsl.magFieldType=="Plugin")
         {
-        detector->SetMagFieldPluginPath(simConfig::fsl.magFieldPlugin);
+            detector->SetMagFieldPluginPath(simConfig::fsl.magFieldPlugin);
         }
                 
-        
         //parse RegionsData
         std::vector<std::string> Regions;
         std::vector<std::vector<G4String>> RootLVNames;
@@ -248,16 +241,7 @@ int main(int argc, char** argv) {
         std::vector<double> gamma_cut;
         
         for (const auto& element : simConfig::jf["Regions data"]){
-            
-//            std::cout<<"RegionName: "<<element["RegionName"]<<std::endl;
-//            std::cout<<"RootLVNames: "<<element["RootLVNames"]<<std::endl;
-//            std::cout<<"GammaCut: "<<element["GammaCut"]<<std::endl;
-//            std::cout<<"ElectronCut: "<<element["ElectronCut"]<<std::endl;
-//            std::cout<<"PositronCut: "<<element["PositronCut"]<<std::endl;
-//            std::cout<<"ProtonCut: "<<element["ProtonCut"]<<std::endl;
-            
-            //actually read the data and save them in a simConfig::regionConfig object (might be useful for the configuration later on)
-            
+
             simConfig::from_json(element, simConfig::rc);
             Regions.push_back(simConfig::rc.regionName);
             RootLVNames.push_back(simConfig::rc.rootLVNames);
@@ -265,14 +249,7 @@ int main(int argc, char** argv) {
             proton_cut.push_back(simConfig::rc.protonCut);
             positron_cut.push_back(simConfig::rc.positronCut);
             gamma_cut.push_back(simConfig::rc.gammaCut);
-            
-//            std::cout<<"RegionName: "<<rc.regionName<<std::endl;
-//            std::cout<<"RootLVNames size: "<<rc.rootLVNames.size()<<std::endl;
-//            std::cout<<"GammaCut: "<<rc.gammaCut<<std::endl;
-//            std::cout<<"ElectronCut: "<<rc.electronCut<<std::endl;
-//            std::cout<<"PositronCut: "<<rc.positronCut<<std::endl;
-//            std::cout<<"ProtonCut: "<<rc.protonCut<<std::endl;
-//            std::cout<<"------------------------------------------------"<<std::endl;
+
         }
         
         detector->ConfigureRegionsFSL(Regions, RootLVNames, electron_cut, proton_cut, positron_cut, gamma_cut);