diff --git a/opossum/examples/cylindric_lens_test.rs b/opossum/examples/cylindric_lens_test.rs
index 6cc0bb4fe0c953d615408a1d50eaf00d87a6a4cd..5d989e664cdf77cb803a542675c8a352c135c730 100644
--- a/opossum/examples/cylindric_lens_test.rs
+++ b/opossum/examples/cylindric_lens_test.rs
@@ -38,5 +38,6 @@ fn main() -> OpmResult<()> {
 
     let mut doc = OpmDocument::new(scenery);
     doc.add_analyzer(AnalyzerType::RayTrace(RayTraceConfig::default()));
+    doc.add_analyzer(AnalyzerType::Energy);
     doc.save_to_file(Path::new("./opossum/playground/cylindric_lens_test.opm"))
 }
diff --git a/opossum/examples/ghost_focus.rs b/opossum/examples/ghost_focus.rs
index b1c2720ebdfd1ee5f74ae4891fa502231cb9b0b1..d61fe300ca0dfe47748610f6015be315ddb050f0 100644
--- a/opossum/examples/ghost_focus.rs
+++ b/opossum/examples/ghost_focus.rs
@@ -4,10 +4,7 @@ use opossum::{
     degree,
     error::OpmResult,
     joule, millimeter,
-    nodes::{
-        round_collimated_ray_source, Lens, NodeGroup, SpotDiagram,
-        Wedge,
-    },
+    nodes::{round_collimated_ray_source, Lens, NodeGroup, SpotDiagram, Wedge},
     optic_node::{Alignable, OpticNode},
     optic_ports::PortType,
     refractive_index::RefrIndexConst,
@@ -17,9 +14,11 @@ use std::path::Path;
 
 fn main() -> OpmResult<()> {
     let mut scenery = NodeGroup::default();
-    let i_src = scenery.add_node(
-        &round_collimated_ray_source(millimeter!(50.0), joule!(2.0), 10)?            
-    )?;
+    let i_src = scenery.add_node(&round_collimated_ray_source(
+        millimeter!(50.0),
+        joule!(2.0),
+        10,
+    )?)?;
     let i_sd = scenery.add_node(&SpotDiagram::default())?;
 
     let mut lens = Lens::default();
diff --git a/opossum/src/main.rs b/opossum/src/main.rs
index b4f1eca0242875eed7cc25ad978ea89b7e790ccd..d92ab1d5f08d5de2bbbb970a74ad06d564f9130b 100644
--- a/opossum/src/main.rs
+++ b/opossum/src/main.rs
@@ -56,11 +56,7 @@ fn create_dot_file(dot_path: &Path, scenery: &NodeGroup) -> OpmResult<()> {
         .map_err(|e| OpossumError::Other(format!("writing diagram file (.svg) failed: {e}")))?;
     Ok(())
 }
-fn create_report_and_data_files(
-    report_directory: &Path,
-    analyzer: &dyn Analyzer,
-    scenery: &NodeGroup,
-) -> OpmResult<()> {
+fn create_data_dir(report_directory: &Path) -> OpmResult<()> {
     let data_dir = report_directory.join("data/");
     if data_dir.exists() {
         info!("Delete old report data dir");
@@ -68,9 +64,20 @@ fn create_report_and_data_files(
             .map_err(|e| OpossumError::Other(format!("removing old data directory failed: {e}")))?;
     }
     create_dir(&data_dir)
-        .map_err(|e| OpossumError::Other(format!("creating data directory failed: {e}")))?;
-    let mut output =
-        create_dot_or_report_file_instance(report_directory, "report", "yaml", "detector report")?;
+        .map_err(|e| OpossumError::Other(format!("creating data directory failed: {e}")))
+}
+fn create_report_and_data_files(
+    report_directory: &Path,
+    analyzer: &dyn Analyzer,
+    report_number: usize,
+    scenery: &NodeGroup,
+) -> OpmResult<()> {
+    let mut output = create_dot_or_report_file_instance(
+        report_directory,
+        &format!("report_{report_number}"),
+        "yaml",
+        "analysis report",
+    )?;
     let analysis_report = analyzer.report(scenery)?;
     write!(
         output,
@@ -80,7 +87,8 @@ fn create_report_and_data_files(
     .map_err(|e| OpossumError::Other(format!("writing report file failed: {e}")))?;
     let mut report_path = report_directory.to_path_buf();
     analysis_report.export_data(&report_path)?;
-    report_path.push("report.html");
+    report_path.push(&format!("report_{report_number}.html"));
+    info!("Write html report to {}", report_path.display());
     analysis_report
         .to_html_report()?
         .generate_html(&report_path)?;
@@ -106,9 +114,9 @@ fn opossum() -> OpmResult<()> {
     if analyzers.is_empty() {
         info!("No analyzer defined in document. Stopping here.");
     } else {
-        info!("Analyzing...");
-        for ana in &analyzers {
-            let analyzer: &dyn Analyzer = match ana {
+        create_data_dir(&opossum_args.report_directory)?;
+        for ana in analyzers.iter().enumerate() {
+            let analyzer: &dyn Analyzer = match ana.1 {
                 AnalyzerType::Energy => &EnergyAnalyzer::default(),
                 AnalyzerType::RayTrace(config) => &RayTracingAnalyzer::new(config.clone()),
                 AnalyzerType::GhostFocus(config) => &GhostFocusAnalyzer::new(config.clone()),
@@ -118,6 +126,7 @@ fn opossum() -> OpmResult<()> {
                     ))
                 }
             };
+            info!("Analysis #{}", ana.0);
             analyzer.analyze(scenery)?;
             #[cfg(feature = "bevy")]
             let analysis_report = create_report_and_data_files(
@@ -127,7 +136,7 @@ fn opossum() -> OpmResult<()> {
                 &opossum_args.analyzer,
             )?;
             #[cfg(not(feature = "bevy"))]
-            create_report_and_data_files(&opossum_args.report_directory, analyzer, scenery)?;
+            create_report_and_data_files(&opossum_args.report_directory, analyzer, ana.0, scenery)?;
             #[cfg(feature = "bevy")]
             bevy_main::bevy_main(SceneryBevyData::from_report(&analysis_report));
         }
@@ -166,6 +175,7 @@ mod test {
         let report_file = create_report_and_data_files(
             &Path::new("./files_for_testing/report/_not_valid/"),
             &EnergyAnalyzer::default(),
+            0,
             &scenery,
         );
         assert!(report_file.is_err());
diff --git a/opossum/src/reporting/html_report.rs b/opossum/src/reporting/html_report.rs
index c91082f95bdc5eb1b33914e1f5269ae6ce1c9b05..096357bdde7dc769d9a114b8f0d342c9f729fc63 100644
--- a/opossum/src/reporting/html_report.rs
+++ b/opossum/src/reporting/html_report.rs
@@ -1,7 +1,5 @@
-use std::{fs, path::Path};
-
-use log::info;
 use serde::Serialize;
+use std::{fs, path::Path};
 use tinytemplate::TinyTemplate;
 
 use crate::error::{OpmResult, OpossumError};
@@ -43,7 +41,6 @@ impl HtmlReport {
     ///   - the base file name could not be determined.
     ///   - the conversion
     pub fn generate_html(&self, path: &Path) -> OpmResult<()> {
-        info!("Write html report to {}", path.display());
         let mut tt = TinyTemplate::new();
         tt.add_template("report", HTML_REPORT)
             .map_err(|e| OpossumError::Other(e.to_string()))?;