diff --git a/README.md b/README.md
index 225ae7d74ddf2b264183e92e15b54286a083afa5..eb625580405d814381aaef21755f4aac6caebba9 100644
--- a/README.md
+++ b/README.md
@@ -122,7 +122,7 @@ export const otherCalculatedVariablesName = [
 ]
 ```
 
-2. Dans le fichier souhaité, Appeler la variable dans la bonne catégorie (Ménage, foyer fiscal, individu, etc), comme fait dans cet exemple avec la variable `niveau_de_vie` dans le fichier `WaterfallView.svelte` :
+2. Dans le fichier souhaité, Appeler la variable dans la bonne catégorie (Ménage, foyer fiscal, individu, etc), comme fait dans cet exemple avec la variable `niveau_de_vie` dans le fichier `PaySlipView.svelte` :
 
 ```js
 {@const niveau_de_vie =
diff --git a/src/lib/components/variables/VariableValueChange.svelte b/src/lib/components/impacts_view/VariableValueChange.svelte
similarity index 100%
rename from src/lib/components/variables/VariableValueChange.svelte
rename to src/lib/components/impacts_view/VariableValueChange.svelte
diff --git a/src/lib/components/test_cases/TestCaseScreenshotLayout.svelte b/src/lib/components/impacts_view/test_cases_view/TestCaseScreenshotLayout.svelte
similarity index 95%
rename from src/lib/components/test_cases/TestCaseScreenshotLayout.svelte
rename to src/lib/components/impacts_view/test_cases_view/TestCaseScreenshotLayout.svelte
index 51dad7546e6db2f5be15cfcaafc74cfc9e26ed31..fd7ef8eacf0353a5380d91bbc907e2fff6939c3f 100644
--- a/src/lib/components/test_cases/TestCaseScreenshotLayout.svelte
+++ b/src/lib/components/impacts_view/test_cases_view/TestCaseScreenshotLayout.svelte
@@ -1,6 +1,6 @@
 <script lang="ts">
-  import TestCaseSummary from "$lib/components/test_cases/TestCaseSummary.svelte"
-  import VariableValueChange from "$lib/components/variables/VariableValueChange.svelte"
+  import TestCaseSummary from "$lib/components/impacts_view/test_cases_view/test_case_selected/TestCaseSummary.svelte"
+  import VariableValueChange from "$lib/components/impacts_view/VariableValueChange.svelte"
   import type { EvaluationByName } from "$lib/decompositions"
   import type { DisplayMode } from "$lib/displays"
   import { shared } from "$lib/shared.svelte"
diff --git a/src/lib/components/TestCaseSimulationSharingModal.svelte b/src/lib/components/impacts_view/test_cases_view/TestCaseSimulationSharingModal.svelte
similarity index 100%
rename from src/lib/components/TestCaseSimulationSharingModal.svelte
rename to src/lib/components/impacts_view/test_cases_view/TestCaseSimulationSharingModal.svelte
diff --git a/src/lib/components/test_cases/OilSpendingBill.svelte b/src/lib/components/impacts_view/test_cases_view/test_case_selected/OilSpendingBill.svelte
similarity index 100%
rename from src/lib/components/test_cases/OilSpendingBill.svelte
rename to src/lib/components/impacts_view/test_cases_view/test_case_selected/OilSpendingBill.svelte
diff --git a/src/lib/components/WaterfallView.svelte b/src/lib/components/impacts_view/test_cases_view/test_case_selected/PaySlipView.svelte
similarity index 99%
rename from src/lib/components/WaterfallView.svelte
rename to src/lib/components/impacts_view/test_cases_view/test_case_selected/PaySlipView.svelte
index 0db254d53aea0d16b5293a5368122c27d6b81869..19e9330bbed86922cb251d6ff389d62deddc5246 100644
--- a/src/lib/components/WaterfallView.svelte
+++ b/src/lib/components/impacts_view/test_cases_view/test_case_selected/PaySlipView.svelte
@@ -2,11 +2,11 @@
   import type { VariableByName } from "@openfisca/json-model"
 
   import { goto } from "$app/navigation"
-  import OilSpendingBill from "$lib/components/test_cases/OilSpendingBill.svelte"
-  import TestCaseGraph from "$lib/components/test_cases/TestCaseGraph.svelte"
+  import OilSpendingBill from "$lib/components/impacts_view/test_cases_view/test_case_selected/OilSpendingBill.svelte"
+  import TestCaseGraph from "$lib/components/impacts_view/test_cases_view/test_case_selected/graph/TestCaseGraph.svelte"
   import Tooltip from "$lib/components/ui_transverse_components/Tooltip.svelte"
   import ValueChange from "$lib/components/ValueChange.svelte"
-  import VariableValueChange from "$lib/components/variables/VariableValueChange.svelte"
+  import VariableValueChange from "$lib/components/impacts_view/VariableValueChange.svelte"
   import {
     isNullVariableValueByCalculationName,
     variableValueByCalculationNameFromEvaluation,
diff --git a/src/lib/components/test_cases/TestCasePictos.svelte b/src/lib/components/impacts_view/test_cases_view/test_case_selected/TestCasePictos.svelte
similarity index 100%
rename from src/lib/components/test_cases/TestCasePictos.svelte
rename to src/lib/components/impacts_view/test_cases_view/test_case_selected/TestCasePictos.svelte
diff --git a/src/lib/components/test_cases/TestCaseSummary.svelte b/src/lib/components/impacts_view/test_cases_view/test_case_selected/TestCaseSummary.svelte
similarity index 99%
rename from src/lib/components/test_cases/TestCaseSummary.svelte
rename to src/lib/components/impacts_view/test_cases_view/test_case_selected/TestCaseSummary.svelte
index b87bfbd2e94491546bb7a2b837f01877ef7a6b21..a245c9b97ebf933dbfea52ad19ad984d8666fdb6 100644
--- a/src/lib/components/test_cases/TestCaseSummary.svelte
+++ b/src/lib/components/impacts_view/test_cases_view/test_case_selected/TestCaseSummary.svelte
@@ -21,7 +21,7 @@
   import PictoHandicap from "$lib/components/ui_transverse_components/pictos/PictoHandicap.svelte"
   import PictoMaison from "$lib/components/ui_transverse_components/pictos/PictoMaison.svelte"
   import PictoRevenusCapital from "$lib/components/ui_transverse_components/pictos/PictoRevenusCapital.svelte"
-  import TestCaseCompareModal from "$lib/components/test_cases/TestCaseCompareModal.svelte"
+  import TestCaseCompareModal from "$lib/components/impacts_view/test_cases_view/test_case_selected/compare_mode/TestCaseCompareModal.svelte"
   import type { DisplayMode } from "$lib/displays"
   import { entityByKey, personEntityKey } from "$lib/entities"
   import { getParameter, rootParameter } from "$lib/parameters"
diff --git a/src/lib/components/test_cases/TestCaseView.svelte b/src/lib/components/impacts_view/test_cases_view/test_case_selected/TestCaseView.svelte
similarity index 94%
rename from src/lib/components/test_cases/TestCaseView.svelte
rename to src/lib/components/impacts_view/test_cases_view/test_case_selected/TestCaseView.svelte
index dfbe17f9b864b823dd52b4ac3f539484532d6ee9..f15d3dfd6a4b76ab59ae4a76b737500baf72f443 100644
--- a/src/lib/components/test_cases/TestCaseView.svelte
+++ b/src/lib/components/impacts_view/test_cases_view/test_case_selected/TestCaseView.svelte
@@ -1,8 +1,8 @@
 <script lang="ts">
   import SourcesMethodTooltip from "$lib/components/SourcesMethodTooltip.svelte"
 
-  import TestCaseSummary from "$lib/components/test_cases/TestCaseSummary.svelte"
-  import WaterfallView from "$lib/components/WaterfallView.svelte"
+  import TestCaseSummary from "$lib/components/impacts_view/test_cases_view/test_case_selected/TestCaseSummary.svelte"
+  import PaySlipView from "$lib/components/impacts_view/test_cases_view/test_case_selected/PaySlipView.svelte"
   import { waterfalls } from "$lib/decompositions"
   import type { DisplayMode } from "$lib/displays"
   import type { Situation } from "$lib/situations"
@@ -77,7 +77,7 @@
         class="relative w-10/12 bg-white py-4 md:w-11/12"
         id="situation_{situationIndex}_waterfall"
       >
-        <WaterfallView
+        <PaySlipView
           {displayMode}
           {evaluationByName}
           {highlightDecomposition}
diff --git a/src/lib/components/WaterfallCompareView.svelte b/src/lib/components/impacts_view/test_cases_view/test_case_selected/compare_mode/PaySlipCompareView.svelte
similarity index 100%
rename from src/lib/components/WaterfallCompareView.svelte
rename to src/lib/components/impacts_view/test_cases_view/test_case_selected/compare_mode/PaySlipCompareView.svelte
diff --git a/src/lib/components/test_cases/TestCaseCompareModal.svelte b/src/lib/components/impacts_view/test_cases_view/test_case_selected/compare_mode/TestCaseCompareModal.svelte
similarity index 100%
rename from src/lib/components/test_cases/TestCaseCompareModal.svelte
rename to src/lib/components/impacts_view/test_cases_view/test_case_selected/compare_mode/TestCaseCompareModal.svelte
diff --git a/src/lib/components/test_cases/TestCaseCompareView.svelte b/src/lib/components/impacts_view/test_cases_view/test_case_selected/compare_mode/TestCaseCompareView.svelte
similarity index 97%
rename from src/lib/components/test_cases/TestCaseCompareView.svelte
rename to src/lib/components/impacts_view/test_cases_view/test_case_selected/compare_mode/TestCaseCompareView.svelte
index daa5b51863e5ad704aefa749de12edaa688a690d..2f884fbafa95949349fb8af697ab0ccdd54b39d1 100644
--- a/src/lib/components/test_cases/TestCaseCompareView.svelte
+++ b/src/lib/components/impacts_view/test_cases_view/test_case_selected/compare_mode/TestCaseCompareView.svelte
@@ -3,9 +3,9 @@
   import { createEventDispatcher } from "svelte"
 
   import type { CalculationName } from "$lib/calculations.svelte"
-  import TestCaseSummary from "$lib/components/test_cases/TestCaseSummary.svelte"
-  import ValueChangeCompare from "$lib/components/ValueChangeCompare.svelte"
-  import WaterfallCompareView from "$lib/components/WaterfallCompareView.svelte"
+  import TestCaseSummary from "$lib/components/impacts_view/test_cases_view/test_case_selected/TestCaseSummary.svelte"
+  import ValueChangeCompare from "$lib/components/impacts_view/test_cases_view/test_case_selected/compare_mode/ValueChangeCompare.svelte"
+  import PaySlipCompareView from "$lib/components/impacts_view/test_cases_view/test_case_selected/compare_mode/PaySlipCompareView.svelte"
   import { type EvaluationByName, waterfalls } from "$lib/decompositions"
   import type { DisplayMode } from "$lib/displays"
   import { billName, revaluationName, shared } from "$lib/shared.svelte"
@@ -311,7 +311,7 @@
               </div>
             {/if}
           </div>
-          <WaterfallCompareView
+          <PaySlipCompareView
             {displayMode}
             evaluationByNameArray={shared.evaluationByNameArray}
             situations={shared.testCases}
diff --git a/src/lib/components/ValueChangeCompare.svelte b/src/lib/components/impacts_view/test_cases_view/test_case_selected/compare_mode/ValueChangeCompare.svelte
similarity index 100%
rename from src/lib/components/ValueChangeCompare.svelte
rename to src/lib/components/impacts_view/test_cases_view/test_case_selected/compare_mode/ValueChangeCompare.svelte
diff --git a/src/lib/components/Autocomplete.svelte b/src/lib/components/impacts_view/test_cases_view/test_case_selected/edition_mode/Autocomplete.svelte
similarity index 100%
rename from src/lib/components/Autocomplete.svelte
rename to src/lib/components/impacts_view/test_cases_view/test_case_selected/edition_mode/Autocomplete.svelte
diff --git a/src/lib/components/test_cases/RolePersonsEdit.svelte b/src/lib/components/impacts_view/test_cases_view/test_case_selected/edition_mode/RolePersonsEdit.svelte
similarity index 100%
rename from src/lib/components/test_cases/RolePersonsEdit.svelte
rename to src/lib/components/impacts_view/test_cases_view/test_case_selected/edition_mode/RolePersonsEdit.svelte
diff --git a/src/lib/components/test_cases/TestCaseEdit.svelte b/src/lib/components/impacts_view/test_cases_view/test_case_selected/edition_mode/TestCaseEdit.svelte
similarity index 98%
rename from src/lib/components/test_cases/TestCaseEdit.svelte
rename to src/lib/components/impacts_view/test_cases_view/test_case_selected/edition_mode/TestCaseEdit.svelte
index 37729cf75df3c73059f1fe5d4a095ddd49c06046..b9490c06800bc3ecb387beb764c2c3514632c359 100644
--- a/src/lib/components/test_cases/TestCaseEdit.svelte
+++ b/src/lib/components/impacts_view/test_cases_view/test_case_selected/edition_mode/TestCaseEdit.svelte
@@ -16,12 +16,12 @@
   import { requestAllTestCasesCalculations } from "$lib/calculations.svelte"
   import PictoBigEnfant from "$lib/components/ui_transverse_components/pictos/PictoBigEnfant.svelte"
   import PictoBigParent from "$lib/components/ui_transverse_components/pictos/PictoBigParent.svelte"
-  import RolePersonsEdit from "$lib/components/test_cases/RolePersonsEdit.svelte"
-  import TestCaseEditVariablesSearch from "$lib/components/test_cases/TestCaseEditVariablesSearch.svelte"
+  import RolePersonsEdit from "$lib/components/impacts_view/test_cases_view/test_case_selected/edition_mode/RolePersonsEdit.svelte"
+  import TestCaseEditVariablesSearch from "$lib/components/impacts_view/test_cases_view/test_case_selected/edition_mode/TestCaseEditVariablesSearch.svelte"
   import Toggletip from "$lib/components/ui_transverse_components/Toggletip.svelte"
   import Tooltip from "$lib/components/ui_transverse_components/Tooltip.svelte"
-  import VariableInput from "$lib/components/variables/VariableInput.svelte"
-  import VariableReferredInputsPane from "$lib/components/variables/VariableReferredInputsPane.svelte"
+  import VariableInput from "$lib/components/impacts_view/test_cases_view/test_case_selected/edition_mode/VariableInput.svelte"
+  import VariableReferredInputsPane from "$lib/components/impacts_view/test_cases_view/test_case_selected/edition_mode/VariableReferredInputsPane.svelte"
   import { decompositionCoreByName } from "$lib/decompositions"
   import { entityByKey, personEntityKey } from "$lib/entities"
   import publicConfig from "$lib/public_config"
diff --git a/src/lib/components/test_cases/TestCaseEditVariablesSearch.svelte b/src/lib/components/impacts_view/test_cases_view/test_case_selected/edition_mode/TestCaseEditVariablesSearch.svelte
similarity index 97%
rename from src/lib/components/test_cases/TestCaseEditVariablesSearch.svelte
rename to src/lib/components/impacts_view/test_cases_view/test_case_selected/edition_mode/TestCaseEditVariablesSearch.svelte
index a58a002a91e749375fa141ad2bfafa841e24464e..aec6d1c60e383d7ad07ff8543bb6f33431e3c7fa 100644
--- a/src/lib/components/test_cases/TestCaseEditVariablesSearch.svelte
+++ b/src/lib/components/impacts_view/test_cases_view/test_case_selected/edition_mode/TestCaseEditVariablesSearch.svelte
@@ -1,7 +1,7 @@
 <script lang="ts">
   import type { Variable } from "@openfisca/json-model"
 
-  import VariableInput from "$lib/components/variables/VariableInput.svelte"
+  import VariableInput from "$lib/components/impacts_view/test_cases_view/test_case_selected/edition_mode/VariableInput.svelte"
   import { parseSearch } from "$lib/search/regexp_search"
   import { billName } from "$lib/shared.svelte"
   import type { Situation } from "$lib/situations"
diff --git a/src/lib/components/variables/VariableInput.svelte b/src/lib/components/impacts_view/test_cases_view/test_case_selected/edition_mode/VariableInput.svelte
similarity index 99%
rename from src/lib/components/variables/VariableInput.svelte
rename to src/lib/components/impacts_view/test_cases_view/test_case_selected/edition_mode/VariableInput.svelte
index aa9b7c83abe7944232cc22fe4ac88bbb394f43dc..05473e16d6694f32a24d3d5742ce7a6922d71c70 100644
--- a/src/lib/components/variables/VariableInput.svelte
+++ b/src/lib/components/impacts_view/test_cases_view/test_case_selected/edition_mode/VariableInput.svelte
@@ -4,7 +4,7 @@
   import { getVariableLatestFormulaDate } from "@openfisca/json-model"
 
   import { requestAllTestCasesCalculations } from "$lib/calculations.svelte"
-  import Autocomplete from "$lib/components/Autocomplete.svelte"
+  import Autocomplete from "$lib/components/impacts_view/test_cases_view/test_case_selected/edition_mode/Autocomplete.svelte"
   import Tooltip from "$lib/components/ui_transverse_components/Tooltip.svelte"
   import ValueChange from "$lib/components/ValueChange.svelte"
   import { entityByKey } from "$lib/entities"
diff --git a/src/lib/components/variables/VariableReferredInputs.svelte b/src/lib/components/impacts_view/test_cases_view/test_case_selected/edition_mode/VariableReferredInputs.svelte
similarity index 98%
rename from src/lib/components/variables/VariableReferredInputs.svelte
rename to src/lib/components/impacts_view/test_cases_view/test_case_selected/edition_mode/VariableReferredInputs.svelte
index 17e9855c62f652393288db36fbbc11a0505713d6..0bce3efc5b79cc92c7d10ec88d0d086f6d300d41 100644
--- a/src/lib/components/variables/VariableReferredInputs.svelte
+++ b/src/lib/components/impacts_view/test_cases_view/test_case_selected/edition_mode/VariableReferredInputs.svelte
@@ -4,7 +4,7 @@
   import type { Variable } from "@openfisca/json-model"
   import { getVariableFormula } from "@openfisca/json-model"
 
-  import VariableInput from "$lib/components/variables/VariableInput.svelte"
+  import VariableInput from "$lib/components/impacts_view/test_cases_view/test_case_selected/edition_mode/VariableInput.svelte"
   import { parseSearch } from "$lib/search/regexp_search"
   import type { Situation } from "$lib/situations"
   import type { ValuesByCalculationNameByVariableName } from "$lib/variables"
diff --git a/src/lib/components/variables/VariableReferredInputsPane.svelte b/src/lib/components/impacts_view/test_cases_view/test_case_selected/edition_mode/VariableReferredInputsPane.svelte
similarity index 94%
rename from src/lib/components/variables/VariableReferredInputsPane.svelte
rename to src/lib/components/impacts_view/test_cases_view/test_case_selected/edition_mode/VariableReferredInputsPane.svelte
index 050db874aa04fae1988ea936413051160fc950a5..5da51f7316052d0fa04c28252d7ae77a05bb8dd1 100644
--- a/src/lib/components/variables/VariableReferredInputsPane.svelte
+++ b/src/lib/components/impacts_view/test_cases_view/test_case_selected/edition_mode/VariableReferredInputsPane.svelte
@@ -2,7 +2,7 @@
   import type { Variable } from "@openfisca/json-model"
   import { createEventDispatcher } from "svelte"
 
-  import VariableReferredInputs from "./VariableReferredInputs.svelte"
+  import VariableReferredInputs from "$lib/components/impacts_view/test_cases_view/test_case_selected/edition_mode/VariableReferredInputs.svelte"
 
   import {
     decompositionCoreByName,
diff --git a/src/lib/components/test_cases/TestCaseGraph.svelte b/src/lib/components/impacts_view/test_cases_view/test_case_selected/graph/TestCaseGraph.svelte
similarity index 99%
rename from src/lib/components/test_cases/TestCaseGraph.svelte
rename to src/lib/components/impacts_view/test_cases_view/test_case_selected/graph/TestCaseGraph.svelte
index 325c8c5dc20f07c003400f798c563c74aabf9066..477bd275f4f185dbef6f2a9e691356d73926f23f 100644
--- a/src/lib/components/test_cases/TestCaseGraph.svelte
+++ b/src/lib/components/impacts_view/test_cases_view/test_case_selected/graph/TestCaseGraph.svelte
@@ -31,7 +31,7 @@
   import SharedTooltip from "$lib/components/ui_transverse_components/piece_of_cake/SharedTooltip.svelte"
   import Svg from "$lib/components/ui_transverse_components/piece_of_cake/Svg.svelte"
   import type { GraphDomain } from "$lib/components/ui_transverse_components/piece_of_cake/types"
-  import TestCaseGraphXlsxExport from "$lib/components/test_cases/TestCaseGraphXlsxExport.svelte"
+  import TestCaseGraphXlsxExport from "$lib/components/impacts_view/test_cases_view/test_case_selected/graph/TestCaseGraphXlsxExport.svelte"
   import Tooltip from "$lib/components/ui_transverse_components/Tooltip.svelte"
   import ValueChange from "$lib/components/ValueChange.svelte"
   import {
diff --git a/src/lib/components/test_cases/TestCaseGraphXlsxExport.svelte b/src/lib/components/impacts_view/test_cases_view/test_case_selected/graph/TestCaseGraphXlsxExport.svelte
similarity index 100%
rename from src/lib/components/test_cases/TestCaseGraphXlsxExport.svelte
rename to src/lib/components/impacts_view/test_cases_view/test_case_selected/graph/TestCaseGraphXlsxExport.svelte
diff --git a/src/lib/components/legislation_view/parameters/VariableReferredParameters.svelte b/src/lib/components/legislation_view/parameters/VariableReferredParameters.svelte
index a265d0cc1cafc7f48e093474ee189bdd03b241db..b285f88880d557ee598293519dce424f3dcacbb0 100644
--- a/src/lib/components/legislation_view/parameters/VariableReferredParameters.svelte
+++ b/src/lib/components/legislation_view/parameters/VariableReferredParameters.svelte
@@ -11,7 +11,7 @@
     type ValueParameter,
   } from "@openfisca/json-model"
 
-  import VariableHeader from "../../variables/VariableHeader.svelte"
+  import VariableHeader from "$lib/components/legislation_view/variables/VariableHeader.svelte"
   import VariableReferredNodeParameter from "$lib/components/legislation_view/parameters/VariableReferredNodeParameter.svelte"
   import VariableReferredScaleParameter from "$lib/components/legislation_view/parameters/VariableReferredScaleParameter.svelte"
   import VariableReferredValueParameter from "$lib/components/legislation_view/parameters/VariableReferredValueParameter.svelte"
diff --git a/src/lib/components/variables/VariableHeader.svelte b/src/lib/components/legislation_view/variables/VariableHeader.svelte
similarity index 98%
rename from src/lib/components/variables/VariableHeader.svelte
rename to src/lib/components/legislation_view/variables/VariableHeader.svelte
index 260b520d12855596f8ccebe1a584ce92b1f0c9fa..fa02b9b2895eb6c445b3b8172fe0ac651c1ab155 100644
--- a/src/lib/components/variables/VariableHeader.svelte
+++ b/src/lib/components/legislation_view/variables/VariableHeader.svelte
@@ -2,7 +2,7 @@
   import type { Variable } from "@openfisca/json-model"
   import { getVariableLatestFormulaDate } from "@openfisca/json-model"
 
-  import ReadMore from "$lib/components/ReadMore.svelte"
+  import ReadMore from "$lib/components/legislation_view/variables/details_modal/ReadMore.svelte"
   import Tooltip from "$lib/components/ui_transverse_components/Tooltip.svelte"
   import type { Decomposition } from "$lib/decompositions"
   import type { DisplayMode } from "$lib/displays"
diff --git a/src/lib/components/ReadMore.svelte b/src/lib/components/legislation_view/variables/details_modal/ReadMore.svelte
similarity index 100%
rename from src/lib/components/ReadMore.svelte
rename to src/lib/components/legislation_view/variables/details_modal/ReadMore.svelte
diff --git a/src/lib/components/variables/VariableDetail.svelte b/src/lib/components/legislation_view/variables/details_modal/VariableDetail.svelte
similarity index 98%
rename from src/lib/components/variables/VariableDetail.svelte
rename to src/lib/components/legislation_view/variables/details_modal/VariableDetail.svelte
index b61f10a94a66e7b84fc67295e2bf5c1b479441d2..eddcb3d97c1fca7753d628ff1e9b0cd60cb98592 100644
--- a/src/lib/components/variables/VariableDetail.svelte
+++ b/src/lib/components/legislation_view/variables/details_modal/VariableDetail.svelte
@@ -12,9 +12,9 @@
   import AccordionItem from "$lib/components/ui_transverse_components/accordion/AccordionItem.svelte"
   import PictoBudgetEtat from "$lib/components/ui_transverse_components/pictos/PictoBudgetEtat.svelte"
   import TestCaseFilters from "$lib/components/test_cases/TestCaseFilters.svelte"
-  import TestCasePictos from "$lib/components/test_cases/TestCasePictos.svelte"
-  import VariableDetailBudget from "$lib/components/variables/VariableDetailBudget.svelte"
-  import VariableValueChange from "$lib/components/variables/VariableValueChange.svelte"
+  import TestCasePictos from "$lib/components/impacts_view/test_cases_view/test_case_selected/TestCasePictos.svelte"
+  import VariableDetailBudget from "$lib/components/legislation_view/variables/details_modal/VariableDetailBudget.svelte"
+  import VariableValueChange from "$lib/components/impacts_view/VariableValueChange.svelte"
   import WithoutBudgetCard from "$lib/components/budget/WithoutBudgetCard.svelte"
   import {
     decompositionCoreByName,
diff --git a/src/lib/components/variables/VariableDetailBudget.svelte b/src/lib/components/legislation_view/variables/details_modal/VariableDetailBudget.svelte
similarity index 100%
rename from src/lib/components/variables/VariableDetailBudget.svelte
rename to src/lib/components/legislation_view/variables/details_modal/VariableDetailBudget.svelte
diff --git a/src/lib/components/variables/FormulaView.svelte b/src/lib/components/legislation_view/variables/technical_details_view/FormulaView.svelte
similarity index 97%
rename from src/lib/components/variables/FormulaView.svelte
rename to src/lib/components/legislation_view/variables/technical_details_view/FormulaView.svelte
index 61a2b690f5fd0951487fc6cc755e53039a6576be..f9c8ebab8076b13417e8f2c85ff6a0aa8a4d352b 100644
--- a/src/lib/components/variables/FormulaView.svelte
+++ b/src/lib/components/legislation_view/variables/technical_details_view/FormulaView.svelte
@@ -7,7 +7,7 @@
   import type { Writable } from "svelte/store"
 
   import { page } from "$app/stores"
-  import VariableInput from "$lib/components/variables/VariableInput.svelte"
+  import VariableInput from "$lib/components/impacts_view/test_cases_view/test_case_selected/edition_mode/VariableInput.svelte"
   import { entityByKey } from "$lib/entities"
   import { leafParametersName } from "$lib/parameters"
   import publicConfig from "$lib/public_config"
diff --git a/src/lib/components/variables/VariableView.svelte b/src/lib/components/legislation_view/variables/technical_details_view/VariableView.svelte
similarity index 97%
rename from src/lib/components/variables/VariableView.svelte
rename to src/lib/components/legislation_view/variables/technical_details_view/VariableView.svelte
index ff381009351cdae67a27d41004d7f93a77f8648c..fb3c302d0ffdb82130713cf4a73e5fe59ccda432 100644
--- a/src/lib/components/variables/VariableView.svelte
+++ b/src/lib/components/legislation_view/variables/technical_details_view/VariableView.svelte
@@ -2,8 +2,8 @@
   import type { Variable } from "@openfisca/json-model"
   import { getContext } from "svelte"
 
-  import FormulaView from "$lib/components/variables/FormulaView.svelte"
-  import VariableInput from "$lib/components/variables/VariableInput.svelte"
+  import FormulaView from "$lib/components/legislation_view/variables/technical_details_view/FormulaView.svelte"
+  import VariableInput from "$lib/components/impacts_view/test_cases_view/test_case_selected/edition_mode/VariableInput.svelte"
   import { decompositionCoreByName } from "$lib/decompositions"
   import publicConfig from "$lib/public_config"
   import { date, year } from "$lib/shared.svelte"
diff --git a/src/lib/components/test_cases/TestCaseFilters.svelte b/src/lib/components/test_cases/TestCaseFilters.svelte
index 2b6b52633f8f22a2cf5c229e31ac8bd3e0e587b6..2570399bd0bf5cbbed56c5bf9e148076ab2d10e4 100644
--- a/src/lib/components/test_cases/TestCaseFilters.svelte
+++ b/src/lib/components/test_cases/TestCaseFilters.svelte
@@ -7,9 +7,9 @@
 
   import { page } from "$app/stores"
   import SelectChip from "$lib/components/ui_transverse_components/SelectChip.svelte"
-  import TestCaseSummary from "$lib/components/test_cases/TestCaseSummary.svelte"
+  import TestCaseSummary from "$lib/components/impacts_view/test_cases_view/test_case_selected/TestCaseSummary.svelte"
   import Tooltip from "$lib/components/ui_transverse_components/Tooltip.svelte"
-  import VariableValueChange from "$lib/components/variables/VariableValueChange.svelte"
+  import VariableValueChange from "$lib/components/impacts_view/VariableValueChange.svelte"
   import {
     decompositionCoreByName,
     decompositionCoreByNameByReformName,
diff --git a/src/lib/components/test_cases/TestCaseTab.svelte b/src/lib/components/test_cases/TestCaseTab.svelte
deleted file mode 100644
index 96bede8232eb474d5b9a856eb35508c3a8eb6b4f..0000000000000000000000000000000000000000
--- a/src/lib/components/test_cases/TestCaseTab.svelte
+++ /dev/null
@@ -1,38 +0,0 @@
-<script lang="ts">
-  import { onMount } from "svelte"
-
-  interface Props {
-    href: string
-    icon: string | undefined
-    picto: string | undefined
-    text: string
-    isActive: boolean
-    isDisabled: boolean
-  }
-
-  let { href, icon, picto, text, isActive, isDisabled }: Props = $props()
-
-  let pictoComponent = $state()
-
-  onMount(async () => {
-    if (picto !== undefined)
-      pictoComponent = (await import(`$lib/components/pictos/${picto}.svelte`))
-        .default
-  })
-</script>
-
-<a
-  class="flex items-center gap-2 border-r-2 px-4 py-4 text-sm uppercase text-gray-600 md:px-8 2xl:text-base"
-  class:bg-white={isActive && !isDisabled}
-  class:shadow-md={isActive && !isDisabled}
-  class:!text-gray-400={isDisabled}
-  class:cursor-not-allowed={isDisabled}
-  href={!isDisabled ? href : undefined}
->
-  {#if pictoComponent !== undefined}
-    <pictoComponent classNames="w-5 2xl:w-6"></pictoComponent>
-  {:else}
-    <iconify-icon {icon} class="text-xl 2xl:text-2xl"></iconify-icon>
-  {/if}
-  {text}
-</a>
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte
index 3e609ea719b6c824dfa289cbe1a8e3aaf3a635b8..bb2694b7766c4d4ddea2d93154fa8fae5f4689d9 100644
--- a/src/routes/+page.svelte
+++ b/src/routes/+page.svelte
@@ -36,18 +36,18 @@
   import PlfVariablesListIntro from "$lib/components/welcome_views/PlfVariablesListIntro.svelte"
   import SkeletonLoaderBudget from "$lib/components/budget/SkeletonLoaderBudget.svelte"
   import StaticAggregates from "$lib/components/budget/StaticAggregates.svelte"
-  import TestCaseCompareView from "$lib/components/test_cases/TestCaseCompareView.svelte"
-  import TestCaseEdit from "$lib/components/test_cases/TestCaseEdit.svelte"
-  import TestCasePictos from "$lib/components/test_cases/TestCasePictos.svelte"
-  import TestCaseScreenshotLayout from "$lib/components/test_cases/TestCaseScreenshotLayout.svelte"
+  import TestCaseCompareView from "$lib/components/impacts_view/test_cases_view/test_case_selected/compare_mode/TestCaseCompareView.svelte"
+  import TestCaseEdit from "$lib/components/impacts_view/test_cases_view/test_case_selected/edition_mode/TestCaseEdit.svelte"
+  import TestCasePictos from "$lib/components/impacts_view/test_cases_view/test_case_selected/TestCasePictos.svelte"
+  import TestCaseScreenshotLayout from "$lib/components/impacts_view/test_cases_view/TestCaseScreenshotLayout.svelte"
   import TestCaseSelectModal from "$lib/components/test_cases/TestCaseSelectModal.svelte"
   import TestCasesLibraryButton from "$lib/components/test_cases/TestCasesLibraryButton.svelte"
-  import TestCaseSummary from "$lib/components/test_cases/TestCaseSummary.svelte"
-  import TestCaseView from "$lib/components/test_cases/TestCaseView.svelte"
-  import TestCaseSimulationSharingModal from "$lib/components/TestCaseSimulationSharingModal.svelte"
-  import VariableDetail from "$lib/components/variables/VariableDetail.svelte"
+  import TestCaseSummary from "$lib/components/impacts_view/test_cases_view/test_case_selected/TestCaseSummary.svelte"
+  import TestCaseView from "$lib/components/impacts_view/test_cases_view/test_case_selected/TestCaseView.svelte"
+  import TestCaseSimulationSharingModal from "$lib/components/impacts_view/test_cases_view/TestCaseSimulationSharingModal.svelte"
+  import VariableDetail from "$lib/components/legislation_view/variables/details_modal/VariableDetail.svelte"
   import VariableReferredParameters from "$lib/components/legislation_view/parameters/VariableReferredParameters.svelte"
-  import VariableValueChange from "$lib/components/variables/VariableValueChange.svelte"
+  import VariableValueChange from "$lib/components/impacts_view/VariableValueChange.svelte"
   import LegislationPerimeterTree from "$lib/components/welcome_views/LegislationPerimeterTree.svelte"
   import WithoutBudgetCard from "$lib/components/budget/WithoutBudgetCard.svelte"
   import {
diff --git a/src/routes/accueil/+page.svelte b/src/routes/accueil/+page.svelte
index 6d96d7379f13532ee903430d9d110da30e7e33ee..0633c984a093f479657fe37b3e22ef6741731933 100644
--- a/src/routes/accueil/+page.svelte
+++ b/src/routes/accueil/+page.svelte
@@ -16,7 +16,7 @@
   import TestCaseSelectModal from "$lib/components/test_cases/TestCaseSelectModal.svelte"
   import AnchorTitle from "$lib/components/ui_transverse_components/AnchorTitle.svelte"
   import Footer from "$lib/components/Footer.svelte"
-  import VariableDetail from "$lib/components/variables/VariableDetail.svelte"
+  import VariableDetail from "$lib/components/legislation_view/variables/details_modal/VariableDetail.svelte"
   import LegislationPerimeterTree from "$lib/components/welcome_views/LegislationPerimeterTree.svelte"
   import { waterfalls, withLinkedVariableNames } from "$lib/decompositions"
   import type { DisplayMode } from "$lib/displays"
diff --git a/src/routes/variables/[variable]/+page.svelte b/src/routes/variables/[variable]/+page.svelte
index ed4e14cccea2bfd2a8ac87278f22f8b4b5479b5b..f5db4e1b2e14598d7ba4813fcd70fa669c9e3783 100644
--- a/src/routes/variables/[variable]/+page.svelte
+++ b/src/routes/variables/[variable]/+page.svelte
@@ -4,7 +4,7 @@
   import type { PageData } from "./$types"
 
   import { goto } from "$app/navigation"
-  import VariableView from "$lib/components/variables/VariableView.svelte"
+  import VariableView from "$lib/components/legislation_view/variables/technical_details_view/VariableView.svelte"
   import publicConfig from "$lib/public_config"
   import { shared } from "$lib/shared.svelte"
   import type { Situation } from "$lib/situations"
diff --git a/src/routes/variables/[variable]/inputs/[date]/+page.svelte b/src/routes/variables/[variable]/inputs/[date]/+page.svelte
index 3a330f7bb087943a273373b3c891210fe75034a1..a2a2eb574fe97a10c001be6635a14ff12921721a 100644
--- a/src/routes/variables/[variable]/inputs/[date]/+page.svelte
+++ b/src/routes/variables/[variable]/inputs/[date]/+page.svelte
@@ -4,7 +4,7 @@
   import type { PageData } from "./$types"
 
   import { page } from "$app/stores"
-  import VariableReferredInputs from "$lib/components/variables/VariableReferredInputs.svelte"
+  import VariableReferredInputs from "$lib/components/impacts_view/test_cases_view/test_case_selected/edition_mode/VariableReferredInputs.svelte"
   import publicConfig from "$lib/public_config"
   import type { Situation } from "$lib/situations"
   import { shared, year } from "$lib/shared.svelte"