diff --git a/README.md b/README.md
index 1698309e079593fc2f7c15f6016c99593f19c38f..0db017ab93eeea6929819479cf597aa65060cfef 100644
--- a/README.md
+++ b/README.md
@@ -56,15 +56,12 @@ BiocManager::install('DESeq2', update = FALSE)
 
 ## Docker
 
-We have developed [Docker images](https://hub.docker.com/repository/docker/ruanad/htrfit/general) to simplify the package's utilization. For an optimal development and coding experience with the Docker container, we recommend using Visual Studio Code (VSCode) along with the DevContainer extension. This setup provides a convenient and isolated environment for development and testing.
+We have developed [Docker images](https://hub.docker.com/r/ruanad/htrfit/tags) to simplify the package's utilization.
 
-1. Install VSCode.
-2. Install Docker on your system and on VSCode.
-3. Launch the HTRfit container directly from VSCode
-4. Install the DevContainer extension for VSCode.
-5. Launch a remote window connected to the running Docker container.
-6. Install the R extension for VSCode.
-7. Enjoy HTRfit !
+```
+docker pull ruanad/htrfit:v2.0.0-beta
+docker run -it --rm ruanad/htrfit:v2.0.0-beta
+```
 
 
 ## Biosphere virtual machine
@@ -105,14 +102,6 @@ mock_data <- mock_rnaseq(input_var_list,
 ```
 
 
-The simulation process in HTRfit has been optimized to generate RNAseq counts for 30,000 genes and 4,000 experimental conditions (2000 levels in varA, 2 levels in varB), each replicated 4 times, resulting in a total of 16,000 samples, in less than 5 minutes. However, the object generated by the framework under these conditions can consume a significant amount of RAM, approximately 50 GB. For an equivalent simulation with 6,000 genes, less than a minute and 10 GB of RAM are required.
-
-
-<div id="bg"  align="center">
-  <img src="./vignettes/figs/simulation_step.png" width="500" height="200">
-</div> 
-
-
 
 ### Fit your model
 
@@ -128,47 +117,94 @@ l_tmb <- fitModelParallel(formula = kij ~ varB + (varB | varA),
                           n.cores = 8)
 ```
 
-The `fitModelParallel()` function in **HTRfit** provides a powerful way to fit models independently for each gene. This allows for efficient parallelization of the modeling process by specifying the `n.cores` option. However, it's essential to note that as more cores are utilized, there is a corresponding increase in the required RAM. This is because the data necessary for fitting the model needs to be loaded into memory. Our simulations have demonstrated significant time savings when employing more cores. For instance, using 25 cores was nearly three times faster for processing 6,000 genes and 2,000 experimental conditions (2000 levels in varA, 2 levels in varB - 8000 samples). However, using 50 cores yielded minimal time savings but had a noticeable impact on RAM consumption. Therefore, users must carefully balance computation speed and memory usage when selecting the number of cores. To aid in making this decision, the graph below can assist in defining the optimal trade-off between computation speed and memory usage when choosing the number of cores.
-
+The `fitModelParallel()` function in **HTRfit** provides a powerful way to fit models independently for each gene. This allows for efficient parallelization of the modeling process by specifying the `n.cores` option. However, it's essential to note that as more cores are utilized, there is a corresponding increase in the required RAM. This is because the data necessary for fitting the model needs to be loaded into memory. Our simulations have demonstrated significant time savings when employing more cores. For instance, using 25 cores was nearly three times faster for processing 6,000 genes and 2,000 experimental conditions (2000 levels in varA, 2 levels in varB - 8000 samples). However, using 50 cores yielded minimal time savings but had a noticeable impact on RAM consumption. Therefore, users must carefully balance computation speed and memory usage when selecting the number of cores. 
 
-<div id="bg"  align="center">
-  <img src="./vignettes/figs/fit_step.png" width="836" height="220">
-</div> 
-
-Furthermore, it's worth noting that the output object generated by fitModelParallel can be substantial in terms of memory (RAM) usage. In simulations involving 6,000 genes and 2,000 experimental conditions (equivalent to 8,000 samples), the output object can occupy a significant amount of memory, reaching approximately 10 GB. Therefore, users need to ensure that their computing environment has enough available RAM to handle these large output objects.
 
 ### Diagnostic metrics
 
-The `metrics_plot()` function allows to plot a diagnostic plot of AIC (Akaike Information Criterion), BIC (Bayesian Information Criterion), logLik (log-likelihood), deviance, df.resid (residual degrees of freedom), and dispersion. These metrics provide insights into how well the model fits the data and help in comparing different models. By examining these metrics, users can quickly identify any anomalies or potential issues in the fitting process
+The `diagnostic_plot()` function allows to plot a diagnostic plot of AIC (Akaike Information Criterion), BIC (Bayesian Information Criterion), logLik (log-likelihood), deviance, df.resid (residual degrees of freedom), and dispersion. These metrics provide insights into how well the model fits the data and help in comparing different models. By examining these metrics, users can quickly identify any anomalies or potential issues in the fitting process
 
 ```
 ## -- plot all metrics
-p <- metrics_plot(list_tmb = l_tmb)
+p <- diagnostic_plot(list_tmb = l_tmb)
 ```
 
 <div id="bg"  align="center">
   <img src="./vignettes/figs/diagnostic_plot.png" width="600" height="360">
 </div> 
 
-
-### Evaluation
+### Evaluation 
 
 ```
 ## -- evaluation
-resSimu <- simulationReport(mock_data, 
-                            list_tmb = l_tmb,
+resSimu <- evaluation_report(list_tmb = l_tmb,
+                            mock_obj = mock_data,
                             coeff_threshold = 0.27, 
                             alt_hypothesis = "greater")
 
 ```
 
-The identity plot, generated by the `simulationReport()` function, provides a visual means to compare the effects used in the simulation (actual effects) with those inferred by the model. This graphical representation facilitates the assessment of the correspondence between the values of the simulated effects and those estimated by the model, allowing for a visual analysis of the model’s goodness of fit to the simulated data.
+The identity plot, generated by the `evaluation_report()` function, provides a visual means to compare the effects used in the simulation (actual effects) with those inferred by the model. This graphical representation facilitates the assessment of the correspondence between the values of the simulated effects and those estimated by the model, allowing for a visual analysis of the model’s goodness of fit to the simulated data.
 
-The dispersion plot, generated by the `simulationReport()` function, offers a visual comparison of the dispersion parameters used in the simulation $\alpha_i$ with those estimated by the model. This graphical representation provides an intuitive way to assess the alignment between the simulated dispersion values and the model-inferred values, enabling a visual evaluation of how well the model captures the underlying data characteristics.
+The dispersion plot, generated by the `evaluation_report()` function, offers a visual comparison of the dispersion parameters used in the simulation $\alpha_i$ with those estimated by the model. This graphical representation provides an intuitive way to assess the alignment between the simulated dispersion values and the model-inferred values, enabling a visual evaluation of how well the model captures the underlying data characteristics.
 
-The Receiver Operating Characteristic (ROC) curve is a valuable tool for assessing the performance of classification models, particularly in the context of identifying differentially expressed genes. It provides a graphical representation of the model’s ability to distinguish between genes that are differentially expressed and those that are not, by varying the `coeff_threshold` and the `alt_hypothesis` parameters. The area under the ROC curve (AUC) provides a single metric that summarizes the model’s overall performance in distinguishing between differentially expressed and non-differentially expressed genes. A higher AUC indicates better model performance.
+The evaluation of model performance in distinguishing between differentially expressed and non-differentially expressed genes relies on the area under the ROC curve (AUC), a comprehensive metric offering a singular summary of the model's overall effectiveness. A higher AUC is indicative of superior model performance. It is noteworthy that we not only calculate the AUC for the ROC curve but also extend this assessment to the PR curve. In the case of the ROC curve, this AUC should be compared to the value of 0.5, representing a random classifier. On the other hand, for the PR curve, we compute the pr_AUC_random, serving as a baseline for comparison. This dual evaluation approach ensures a thorough understanding of the model's discrimination capabilities under different scenarios, providing valuable insights into its robustness and reliability.
 
+In addition to evaluating model performance through the AUC for both ROC and PR curves, we provide access to key classification metrics, including Accuracy, Precision, Recall (or Sensitivity), and Specificity. These metrics offer a comprehensive view of the model's classification capabilities.
 
-<div id="bg"  align="center">
-  <img src="./vignettes/figs/evaluation.png" width="680" height="400">
-</div> 
\ No newline at end of file
+
+### Comparison DESeq HTRfit
+
+**HTRfit** offers a wrapper for **DESeq2** outputs. This functionality allows users to seamlessly integrate the results obtained from **DESeq2** into the **HTRfit** analysis pipeline. By doing so, you can readily compare the performance of **HTRfit** with **DESeq2** on your RNAseq data. This comparative analysis aids in determining which tool performs better for your specific research goals and dataset
+
+
+
+```{r}
+## -- init a design 
+input_var_list <- init_variable( name = "varA", mu = 0, sd = 0.29, level = 2) %>%
+                  init_variable( name = "varB", mu = 0.27, sd = 0.6, level = 2) %>%
+                    add_interaction( between_var = c("varA", "varB"), mu = 0.44, sd = 0.89)
+N_GENES = 1000
+MIN_REPLICATES = 4
+MAX_REPLICATES = 4
+BASAL_EXPR = 2
+SEQ_DEPTH = 1e+7
+
+## -- simulate RNAseq data 
+mock_data <- mock_rnaseq(input_var_list, 
+                         n_genes = N_GENES,
+                         min_replicates  = MIN_REPLICATES,
+                         max_replicates = MAX_REPLICATES,
+                         basal_expression = BASAL_EXPR,
+                         sequencing_depth = SEQ_DEPTH )
+
+## -- prepare data & fit a model with HTRfit
+data2fit = prepareData2fit(countMatrix = mock_data$counts, 
+                           metadata =  mock_data$metadata, 
+                           normalization = F)
+l_tmb <- fitModelParallel(formula = kij ~ varB + (varB | varA),
+                          data = data2fit, 
+                          group_by = "geneID",
+                          family = glmmTMB::nbinom2(link = "log"), 
+                          n.cores = 8)
+
+
+## -- DESeq2
+library(DESeq2)
+dds <- DESeq2::DESeqDataSetFromMatrix(
+          countData = count_matrix,
+          colData = metaData,
+          design = ~ varA + varB  + varA:varB )
+dds <- DESeq2::DESeq(dds, quiet = TRUE)
+
+
+## -- get simulation/fit evaluation
+resSimu <- evaluation_report(list_tmb = l_tmb,
+                            dds_obj = dds,
+                            mock_data, 
+                            coeff_threshold = 0.4, 
+                            alt_hypothesis = "greaterAbs")
+```
+
+
+*** ADD plot ***
\ No newline at end of file