diff --git a/src/components/ContentComponents/Charts/AxisBottom.tsx b/src/components/ContentComponents/Charts/AxisBottom.tsx
index e3c7d7884e4c072510620e4ed52d60b348bc6ab3..ef98771e37cfb1208bed9994347daeb5a46f10f5 100644
--- a/src/components/ContentComponents/Charts/AxisBottom.tsx
+++ b/src/components/ContentComponents/Charts/AxisBottom.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 import { ScaleBand } from 'd3-scale'
 import { IDataload, TimeStep } from 'services/dataConsumptionContracts'
-import { compareStepDate } from 'services/dateChartService'
+import DateChartService from 'services/dateChartService'
 import { DateTime } from 'luxon'
 
 interface TextTypeProps {
@@ -14,7 +14,12 @@ interface TextTypeProps {
 
 function TextAxis(props: TextTypeProps) {
   const { index, dataload, timeStep, width, selectedDate } = props
-  const isSelectedDate = compareStepDate(timeStep, selectedDate, dataload.date)
+  const dateChartService = new DateChartService()
+  const isSelectedDate = dateChartService.compareStepDate(
+    timeStep,
+    selectedDate,
+    dataload.date
+  )
   const style = isSelectedDate
     ? 'tick-text tick-text-selected chart-ticks-x-text'
     : 'tick-text chart-ticks-x-text'
@@ -94,7 +99,7 @@ const AxisBottom = (props: AxisBottomProps) => {
     selectedDate,
   } = props
   const dashArray = `${height / 30} ${height / 30}`
-
+  const dateChartService = new DateChartService()
   return (
     <g
       className="axis x"
@@ -116,7 +121,11 @@ const AxisBottom = (props: AxisBottomProps) => {
             width={xScale.bandwidth() / 2}
             selectedDate={selectedDate}
           />
-          {compareStepDate(timeStep, DateTime.local(), d.date) ? (
+          {dateChartService.compareStepDate(
+            timeStep,
+            DateTime.local(),
+            d.date
+          ) ? (
             <line
               stroke="white"
               strokeLinecap="round"
diff --git a/src/components/ContentComponents/Charts/Bar.tsx b/src/components/ContentComponents/Charts/Bar.tsx
index f9fd12557402de2fda01ff780fd55b08842cb03c..cd5a8b4a867b02a5353500386d5d9d550fcc7b4f 100644
--- a/src/components/ContentComponents/Charts/Bar.tsx
+++ b/src/components/ContentComponents/Charts/Bar.tsx
@@ -1,7 +1,7 @@
 import React, { useState, useEffect } from 'react'
 import { ScaleBand, ScaleLinear } from 'd3-scale'
 import { IDataload, TimeStep } from 'services/dataConsumptionContracts'
-import { compareStepDate } from 'services/dateChartService'
+import DateChartService from 'services/dateChartService'
 import { FluidType } from 'enum/fluid.enum'
 import { DateTime } from 'luxon'
 import { detect } from 'detect-browser'
@@ -70,7 +70,11 @@ const Bar = (props: BarProps) => {
     setCompareAnimationEnded(true)
   }
 
-  const isSelectedDate = compareStepDate(timeStep, selectedDate, dataload.date)
+  const isSelectedDate = new DateChartService().compareStepDate(
+    timeStep,
+    selectedDate,
+    dataload.date
+  )
 
   const barClass = clicked
     ? `bar-${fluidStyle} selected bounce-${
diff --git a/src/components/ContentComponents/Charts/Hash.tsx b/src/components/ContentComponents/Charts/Hash.tsx
index 457eba1bfed58cc9f64fb49f8e0100e8fd27d846..7f8b85b23b575fccc5e58fd5ef7ecf769cd136bd 100644
--- a/src/components/ContentComponents/Charts/Hash.tsx
+++ b/src/components/ContentComponents/Charts/Hash.tsx
@@ -6,7 +6,7 @@ import {
   TimeStep,
 } from 'services/dataConsumptionContracts'
 import { DateTime } from 'luxon'
-import { compareStepDate } from 'services/dateChartService'
+import DateChartService from 'services/dateChartService'
 
 interface HashProps {
   challengePeriod: ITimePeriod | null
@@ -72,8 +72,9 @@ const Hash = (props: HashProps) => {
         } else if (startScale && !endScale) {
           setScale([startScale - padding, width - startScale])
         } else if (!startScale && endScale) {
+          const dateChartService = new DateChartService()
           if (
-            compareStepDate(
+            dateChartService.compareStepDate(
               TimeStep.DAY,
               challengePeriod.endDate,
               chartData.actualData[0].date
diff --git a/src/components/ContentComponents/ConsumptionVisualizer/ConsumptionVisualizer.tsx b/src/components/ContentComponents/ConsumptionVisualizer/ConsumptionVisualizer.tsx
index e42661db7164ba5feff30e178928ef70796f0ca1..8e6793af38dd9bdb61678c69345171948e33257f 100644
--- a/src/components/ContentComponents/ConsumptionVisualizer/ConsumptionVisualizer.tsx
+++ b/src/components/ContentComponents/ConsumptionVisualizer/ConsumptionVisualizer.tsx
@@ -4,7 +4,7 @@ import { FluidType } from 'enum/fluid.enum'
 import { DateTime } from 'luxon'
 import { TimeStep, IDataload } from 'services/dataConsumptionContracts'
 
-import { isDataToCome } from 'services/dateChartService'
+import DateChartService from 'services/dateChartService'
 import DateConsumptionVisualizer from 'components/ContentComponents/ConsumptionVisualizer/DateConsumptionVisualizer'
 import DataloadConsumptionVisualizer from 'components/ContentComponents/ConsumptionVisualizer/DataloadConsumptionVisualizer'
 import DetailedConsumptionVisualizer from 'components/ContentComponents/ConsumptionVisualizer/DetailedConsumptionVisualizer'
@@ -48,6 +48,7 @@ const ConsumptionVisualizer = ({
   handleChangeIndex,
 }: ConsumptionVisualizerProps) => {
   fluidTypes.sort()
+  const dateChartService = new DateChartService()
   return (
     <div className="cv">
       <DateConsumptionVisualizer
@@ -79,11 +80,11 @@ const ConsumptionVisualizer = ({
         {dataload &&
           dataload.valueDetail &&
           ((dataload.valueDetail[0] === -1 &&
-            !isDataToCome(dataload, fluidTypes[0])) ||
+            !dateChartService.isDataToCome(dataload, fluidTypes[0])) ||
             (dataload.valueDetail[1] === -1 &&
-              !isDataToCome(dataload, fluidTypes[1])) ||
+              !dateChartService.isDataToCome(dataload, fluidTypes[1])) ||
             (dataload.valueDetail[2] === -1 &&
-              !isDataToCome(dataload, fluidTypes[2]))) && (
+              !dateChartService.isDataToCome(dataload, fluidTypes[2]))) && (
             <ErrorDataConsumptionVisualizer
               date={date}
               indexDisplayed={indexDisplayed}
diff --git a/src/components/ContentComponents/ConsumptionVisualizer/DataloadConsumptionVisualizer.tsx b/src/components/ContentComponents/ConsumptionVisualizer/DataloadConsumptionVisualizer.tsx
index 3341f62b2d0020c410a49bc166372ac033d0a2b8..c426760127ced29e1adb078e92de2f497970bbb3 100644
--- a/src/components/ContentComponents/ConsumptionVisualizer/DataloadConsumptionVisualizer.tsx
+++ b/src/components/ContentComponents/ConsumptionVisualizer/DataloadConsumptionVisualizer.tsx
@@ -7,7 +7,7 @@ import StyledIcon from 'components/CommonKit/Icon/StyledIcon'
 import { getPicto } from 'utils/picto'
 import { formatNumberValues } from 'utils/utils'
 import ConverterService from 'services/converter.service'
-import { isDataToCome } from 'services/dateChartService'
+import DateChartService from 'services/dateChartService'
 import { DateTime } from 'luxon'
 
 interface DataloadConsumptionVisualizerProps {
@@ -40,6 +40,7 @@ const DataloadConsumptionVisualizer = ({
     : fluidTypes.length > 1
     ? 'MULTIFLUID'
     : FluidType[fluidTypes[0]]
+  const dateChartService = new DateChartService()
 
   useEffect(() => {
     if ((dataload && dataload.value) || (dataload && dataload.value === 0)) {
@@ -129,7 +130,8 @@ const DataloadConsumptionVisualizer = ({
                       >
                         <div
                           className={
-                            load === -1 && !isDataToCome(dataload, index)
+                            load === -1 &&
+                            !dateChartService.isDataToCome(dataload, index)
                               ? 'cv-euro-fluid error'
                               : `cv-euro-fluid ${FluidType[
                                   index
@@ -142,9 +144,10 @@ const DataloadConsumptionVisualizer = ({
                             size={22}
                           />
                           <div>
-                            {!isDataToCome(dataload, index) && load !== -1
+                            {!dateChartService.isDataToCome(dataload, index) &&
+                            load !== -1
                               ? `${formatNumberValues(load)} €`
-                              : isDataToCome(dataload, index)
+                              : dateChartService.isDataToCome(dataload, index)
                               ? t('COMMON.DATATOCOME')
                               : '---- €'}
                           </div>
diff --git a/src/components/ContentComponents/FluidChart/FluidChartContent.tsx b/src/components/ContentComponents/FluidChart/FluidChartContent.tsx
index e324db81179b6825356db5027aff3e525cce011a..ca20bdfd0b6581671d7b1e86249d7e3712715cf3 100644
--- a/src/components/ContentComponents/FluidChart/FluidChartContent.tsx
+++ b/src/components/ContentComponents/FluidChart/FluidChartContent.tsx
@@ -8,12 +8,7 @@ import {
   ITimePeriod,
   TimePeriod,
 } from 'services/dataConsumptionContracts'
-import {
-  defineLastStepDate,
-  defineDetailedTimeStep,
-  formatDetailedDate,
-  incrementDate,
-} from 'services/dateChartService'
+import DateChartService from 'services/dateChartService'
 import { UserChallenge } from 'services/dataChallengeContracts'
 import { FluidType } from 'enum/fluid.enum'
 
@@ -73,10 +68,11 @@ const FluidChartContent: React.FC<FluidChartContentProps> = ({
     currentChallenge.endingDate &&
     new TimePeriod(currentChallenge.startingDate, currentChallenge.endingDate)
   const handleChangeIndex = (index: number) => {
+    const dateChartService = new DateChartService()
     const date =
       index === 0
         ? referenceDate
-        : defineLastStepDate(referenceDate, timeStep, index)
+        : dateChartService.defineLastStepDate(referenceDate, timeStep, index)
     setSelectedDate(date)
     setIndexDisplayed(index)
     setIsLoaded(false)
@@ -95,14 +91,22 @@ const FluidChartContent: React.FC<FluidChartContentProps> = ({
   }
 
   const handleClickDetails = () => {
-    const detailedTimeStep = defineDetailedTimeStep(timeStep, fluidTypes)
-    const detailedDate = formatDetailedDate(selectedDate, detailedTimeStep)
+    const dateChartService = new DateChartService()
+    const detailedTimeStep = dateChartService.defineDetailedTimeStep(
+      timeStep,
+      fluidTypes
+    )
+    const detailedDate = dateChartService.formatDetailedDate(
+      selectedDate,
+      detailedTimeStep
+    )
     handleDetailedDate(detailedDate, detailedTimeStep)
     setIsLoaded(false)
   }
 
   const handleClickMove = (increment: number) => {
-    const { incrementIndex, incrementedDate } = incrementDate(
+    const dateChartService = new DateChartService()
+    const { incrementIndex, incrementedDate } = dateChartService.incrementDate(
       increment,
       selectedDate,
       timeStep,
diff --git a/src/components/ContentComponents/FluidChart/FluidChartSlide.tsx b/src/components/ContentComponents/FluidChart/FluidChartSlide.tsx
index a186f247e0de6fca0644f13912fc68602b4b4d4b..9256411b4507ed59807f817047053f131af16289 100644
--- a/src/components/ContentComponents/FluidChart/FluidChartSlide.tsx
+++ b/src/components/ContentComponents/FluidChart/FluidChartSlide.tsx
@@ -8,7 +8,7 @@ import {
   TimeStep,
   ITimePeriod,
 } from 'services/dataConsumptionContracts'
-import { defineTimePeriod } from 'services/dateChartService'
+import DateChartService from 'services/dateChartService'
 import { FluidType } from 'enum/fluid.enum'
 
 import BarChart from 'components/ContentComponents/Charts/BarChart'
@@ -59,9 +59,10 @@ const FluidChartSlide: React.FC<FluidChartSlideProps> = ({
   useEffect(() => {
     let subscribed = true
     async function loadData() {
+      const dateChartService = new DateChartService()
       const [timePeriod, compareTimePeriod] = await Promise.all([
-        defineTimePeriod(referenceDate, timeStep, index),
-        defineTimePeriod(referenceDate, timeStep, index + 1),
+        dateChartService.defineTimePeriod(referenceDate, timeStep, index),
+        dateChartService.defineTimePeriod(referenceDate, timeStep, index + 1),
       ])
 
       const graphData = await consumptionDataManager.getGraphData(
diff --git a/src/services/consumptionDataFormatterService.ts b/src/services/consumptionDataFormatterService.ts
index cba6bdb209af663b38134d0590e3ba9aa3a73407..7666b883311b307dd427f0e0960578e9f052502a 100644
--- a/src/services/consumptionDataFormatterService.ts
+++ b/src/services/consumptionDataFormatterService.ts
@@ -1,8 +1,7 @@
 /* eslint-disable @typescript-eslint/interface-name-prefix */
 import { TimeStep, ITimePeriod, IDataload } from './dataConsumptionContracts'
 import { compareDates } from 'utils/date'
-import { compareStepDate } from './dateChartService'
-//import _ from 'lodash'
+import DateChartService from 'services/dateChartService'
 
 export default class ConsumptionDataFormatter {
   public formatGraphData(
@@ -27,10 +26,11 @@ export default class ConsumptionDataFormatter {
     const filledData = []
     let parsingDate = timePeriod.startDate
 
+    const dateChartService = new DateChartService()
     while (parsingDate <= timePeriod.endDate) {
       //const filtereddata = data.filter(dt => dt.date.equals(parsingDate))
       const filtereddata = data.filter(dt =>
-        compareStepDate(timeStep, dt.date, parsingDate)
+        dateChartService.compareStepDate(timeStep, dt.date, parsingDate)
       )
 
       const newElement = filtereddata[0]
diff --git a/src/services/dateChartService.ts b/src/services/dateChartService.ts
index 6943921f181748529f1d19a67f2414d166ed669e..41cc9d05925deb981825858959099561e4c80373 100644
--- a/src/services/dateChartService.ts
+++ b/src/services/dateChartService.ts
@@ -6,273 +6,278 @@ import {
   IDataload,
 } from 'services/dataConsumptionContracts'
 
-export function defineTimePeriod(
-  referenceDate: DateTime,
-  timeStep: TimeStep,
-  index: number
-): TimePeriod {
-  let date: DateTime
-  switch (timeStep) {
-    case TimeStep.YEAR:
-      date = referenceDate.set({
-        month: 1,
-        day: 1,
-        hour: 0,
-        minute: 0,
-        second: 0,
-        millisecond: 0,
-      })
-      return new TimePeriod(
-        date.plus({ years: -5 * index - (5 - 1) }),
-        date.plus({ years: -5 * index })
-      )
-    case TimeStep.MONTH:
-      date = referenceDate.set({
-        month: 12,
-        day: 1,
-        hour: 0,
-        minute: 0,
-        second: 0,
-        millisecond: 0,
-      })
-      return new TimePeriod(
-        date.plus({ months: -12 * index - (12 - 1) }),
-        date.plus({ months: -12 * index })
-      )
-    case TimeStep.DAY:
-      date = referenceDate
-        .endOf('week')
-        .set({ hour: 0, minute: 0, second: 0, millisecond: 0 })
-      return new TimePeriod(
-        date.plus({ days: -7 * index - (7 - 1) }),
-        date.plus({ days: -7 * index })
-      )
-    case TimeStep.HOUR:
-      date = referenceDate.set({
-        hour: 23,
-        minute: 0,
-        second: 0,
-        millisecond: 0,
-      })
-      return new TimePeriod(
-        date.set({ hour: 0, minute: 0 }).plus({ days: -1 * index }),
-        date.plus({ days: -1 * index })
-      )
-    case TimeStep.HALF_AN_HOUR:
-      date = referenceDate.set({ hour: 23, minute: 30 })
-      return new TimePeriod(
-        date.set({ hour: 0, minute: 0 }).plus({ days: -1 * index }),
-        date.plus({ days: -1 * index })
-      )
-    default:
-      date = referenceDate
-      return new TimePeriod(
-        date.plus({ days: -7 * index - (7 - 1) }),
-        date.plus({ days: -7 * index })
-      )
+export default class DateChartService {
+  public defineTimePeriod(
+    referenceDate: DateTime,
+    timeStep: TimeStep,
+    index: number
+  ): TimePeriod {
+    let date: DateTime
+    switch (timeStep) {
+      case TimeStep.YEAR:
+        date = referenceDate.set({
+          month: 1,
+          day: 1,
+          hour: 0,
+          minute: 0,
+          second: 0,
+          millisecond: 0,
+        })
+        return new TimePeriod(
+          date.plus({ years: -5 * index - (5 - 1) }),
+          date.plus({ years: -5 * index })
+        )
+      case TimeStep.MONTH:
+        date = referenceDate.set({
+          month: 12,
+          day: 1,
+          hour: 0,
+          minute: 0,
+          second: 0,
+          millisecond: 0,
+        })
+        return new TimePeriod(
+          date.plus({ months: -12 * index - (12 - 1) }),
+          date.plus({ months: -12 * index })
+        )
+      case TimeStep.DAY:
+        date = referenceDate
+          .endOf('week')
+          .set({ hour: 0, minute: 0, second: 0, millisecond: 0 })
+        return new TimePeriod(
+          date.plus({ days: -7 * index - (7 - 1) }),
+          date.plus({ days: -7 * index })
+        )
+      case TimeStep.HOUR:
+        date = referenceDate.set({
+          hour: 23,
+          minute: 0,
+          second: 0,
+          millisecond: 0,
+        })
+        return new TimePeriod(
+          date.set({ hour: 0, minute: 0 }).plus({ days: -1 * index }),
+          date.plus({ days: -1 * index })
+        )
+      case TimeStep.HALF_AN_HOUR:
+        date = referenceDate.set({ hour: 23, minute: 30 })
+        return new TimePeriod(
+          date.set({ hour: 0, minute: 0 }).plus({ days: -1 * index }),
+          date.plus({ days: -1 * index })
+        )
+      default:
+        date = referenceDate
+        return new TimePeriod(
+          date.plus({ days: -7 * index - (7 - 1) }),
+          date.plus({ days: -7 * index })
+        )
+    }
   }
-}
-
-export function defineFirstStepDate(
-  referenceDate: DateTime,
-  timeStep: TimeStep,
-  index: number
-): DateTime {
-  const period = defineTimePeriod(referenceDate, timeStep, index)
-  return period.startDate
-}
 
-export function defineLastStepDate(
-  referenceDate: DateTime,
-  timeStep: TimeStep,
-  index: number
-): DateTime {
-  const period = defineTimePeriod(referenceDate, timeStep, index)
-  return period.endDate
-}
+  public defineFirstStepDate(
+    referenceDate: DateTime,
+    timeStep: TimeStep,
+    index: number
+  ): DateTime {
+    const period = this.defineTimePeriod(referenceDate, timeStep, index)
+    return period.startDate
+  }
 
-export function compareStepDate(
-  timeStep: TimeStep,
-  date1: DateTime,
-  date2: DateTime
-): boolean {
-  switch (timeStep) {
-    case TimeStep.YEAR:
-      return date1.year === date2.year
-    case TimeStep.MONTH:
-      return date1.year === date2.year && date1.month === date2.month
-    case TimeStep.DAY:
-      return (
-        date1.year === date2.year &&
-        date1.month === date2.month &&
-        date1.day === date2.day
-      )
-    case TimeStep.HOUR:
-      return (
-        date1.year === date2.year &&
-        date1.month === date2.month &&
-        date1.day === date2.day &&
-        date1.hour === date2.hour
-      )
-    case TimeStep.HALF_AN_HOUR:
-      return (
-        date1.year === date2.year &&
-        date1.month === date2.month &&
-        date1.day === date2.day &&
-        date1.hour === date2.hour &&
-        Math.abs(date1.minute - date2.minute) < 30
-      )
-    default:
-      return false
+  public defineLastStepDate(
+    referenceDate: DateTime,
+    timeStep: TimeStep,
+    index: number
+  ): DateTime {
+    const period = this.defineTimePeriod(referenceDate, timeStep, index)
+    return period.endDate
   }
-}
 
-export function defineDetailedTimeStep(
-  timeStep: TimeStep,
-  fluidTypes: FluidType[]
-): TimeStep {
-  if (fluidTypes.length === 1) {
+  public compareStepDate(
+    timeStep: TimeStep,
+    date1: DateTime,
+    date2: DateTime
+  ): boolean {
     switch (timeStep) {
       case TimeStep.YEAR:
-        return TimeStep.MONTH
+        return date1.year === date2.year
       case TimeStep.MONTH:
-        return TimeStep.DAY
+        return date1.year === date2.year && date1.month === date2.month
       case TimeStep.DAY:
-        switch (fluidTypes[0]) {
-          case FluidType.ELECTRICITY:
-            return TimeStep.HALF_AN_HOUR
-          case FluidType.WATER:
-            return TimeStep.HOUR
-          case FluidType.GAS:
-            return TimeStep.HOUR
-        }
+        return (
+          date1.year === date2.year &&
+          date1.month === date2.month &&
+          date1.day === date2.day
+        )
       case TimeStep.HOUR:
-        return TimeStep.HOUR
+        return (
+          date1.year === date2.year &&
+          date1.month === date2.month &&
+          date1.day === date2.day &&
+          date1.hour === date2.hour
+        )
       case TimeStep.HALF_AN_HOUR:
-        return TimeStep.HALF_AN_HOUR
+        return (
+          date1.year === date2.year &&
+          date1.month === date2.month &&
+          date1.day === date2.day &&
+          date1.hour === date2.hour &&
+          Math.abs(date1.minute - date2.minute) < 30
+        )
       default:
-        return timeStep
+        return false
+    }
+  }
+
+  public defineDetailedTimeStep(
+    timeStep: TimeStep,
+    fluidTypes: FluidType[]
+  ): TimeStep {
+    if (fluidTypes.length === 1) {
+      switch (timeStep) {
+        case TimeStep.YEAR:
+          return TimeStep.MONTH
+        case TimeStep.MONTH:
+          return TimeStep.DAY
+        case TimeStep.DAY:
+          switch (fluidTypes[0]) {
+            case FluidType.ELECTRICITY:
+              return TimeStep.HALF_AN_HOUR
+            case FluidType.WATER:
+              return TimeStep.HOUR
+            case FluidType.GAS:
+              return TimeStep.HOUR
+          }
+        case TimeStep.HOUR:
+          return TimeStep.HOUR
+        case TimeStep.HALF_AN_HOUR:
+          return TimeStep.HALF_AN_HOUR
+        default:
+          return timeStep
+      }
+    } else {
+      switch (timeStep) {
+        case TimeStep.YEAR:
+          return TimeStep.MONTH
+        case TimeStep.MONTH:
+          return TimeStep.DAY
+        default:
+          return timeStep
+      }
     }
-  } else {
+  }
+
+  public formatDetailedDate(date: DateTime, timeStep: TimeStep): DateTime {
     switch (timeStep) {
       case TimeStep.YEAR:
-        return TimeStep.MONTH
+        return date
       case TimeStep.MONTH:
-        return TimeStep.DAY
+        return date.set({
+          month: 1,
+          day: 1,
+          hour: 0,
+          minute: 0,
+          second: 0,
+          millisecond: 0,
+        })
+      case TimeStep.DAY:
+        return date.set({
+          day: 1,
+          hour: 0,
+          minute: 0,
+          second: 0,
+          millisecond: 0,
+        })
+      case TimeStep.HOUR:
+        return date.set({ hour: 0, minute: 0, second: 0, millisecond: 0 })
+      case TimeStep.HALF_AN_HOUR:
+        return date.set({ minute: 0, second: 0, millisecond: 0 })
       default:
-        return timeStep
+        return date
     }
   }
-}
 
-export function formatDetailedDate(
-  date: DateTime,
-  timeStep: TimeStep
-): DateTime {
-  switch (timeStep) {
-    case TimeStep.YEAR:
-      return date
-    case TimeStep.MONTH:
-      return date.set({
-        month: 1,
-        day: 1,
-        hour: 0,
-        minute: 0,
-        second: 0,
-        millisecond: 0,
-      })
-    case TimeStep.DAY:
-      return date.set({ day: 1, hour: 0, minute: 0, second: 0, millisecond: 0 })
-    case TimeStep.HOUR:
-      return date.set({ hour: 0, minute: 0, second: 0, millisecond: 0 })
-    case TimeStep.HALF_AN_HOUR:
-      return date.set({ minute: 0, second: 0, millisecond: 0 })
-    default:
-      return date
-  }
-}
-
-export function incrementDate(
-  increment: number,
-  initialdate: DateTime,
-  timeStep: TimeStep,
-  lastDataDate: DateTime
-): { incrementIndex: number; incrementedDate: DateTime } {
-  let incrementIndex = 0
-  let incrementedDate: DateTime = initialdate
-  switch (timeStep) {
-    case TimeStep.YEAR:
-      incrementedDate = initialdate.plus({ year: increment })
-      incrementIndex =
-        increment < 0 &&
-        lastDataDate.year >= incrementedDate.year &&
-        (lastDataDate.year - incrementedDate.year) % 5 === 0
-          ? 1
-          : increment > 0 &&
-            lastDataDate.year >= incrementedDate.year &&
-            (lastDataDate.year - incrementedDate.year) % 5 === 4
-          ? -1
-          : increment < 0 &&
-            lastDataDate.year <= incrementedDate.year &&
-            (incrementedDate.year - lastDataDate.year) % 5 === 0
-          ? 1
-          : increment > 0 &&
-            lastDataDate.year <= incrementedDate.year &&
-            (incrementedDate.year - lastDataDate.year) % 5 === 1
-          ? -1
-          : 0
-      break
-    case TimeStep.MONTH:
-      incrementedDate = initialdate.plus({ month: increment })
-      incrementIndex = initialdate.year - incrementedDate.year
-      break
-    case TimeStep.DAY:
-      incrementedDate = initialdate.plus({ day: increment })
-      if (initialdate.weekday === 1 && incrementedDate.weekday === 7) {
-        incrementIndex = 1
-      } else if (initialdate.weekday === 7 && incrementedDate.weekday === 1) {
-        incrementIndex = -1
-      } else {
-        incrementIndex = 0
-      }
-      break
-    case TimeStep.HOUR:
-      incrementedDate = initialdate.plus({ hour: increment })
-      if (initialdate.hour === 0 && incrementedDate.hour === 23) {
-        incrementIndex = 1
-      } else if (initialdate.hour === 23 && incrementedDate.hour === 0) {
-        incrementIndex = -1
-      } else {
-        incrementIndex = 0
-      }
-      break
-    case TimeStep.HALF_AN_HOUR:
-      incrementedDate = initialdate.plus({ minute: increment * 30 })
-      if (initialdate.hour === 0 && incrementedDate.hour === 23) {
-        incrementIndex = 1
-      } else if (initialdate.hour === 23 && incrementedDate.hour === 0) {
-        incrementIndex = -1
-      } else {
-        incrementIndex = 0
-      }
-      break
+  public incrementDate(
+    increment: number,
+    initialdate: DateTime,
+    timeStep: TimeStep,
+    lastDataDate: DateTime
+  ): { incrementIndex: number; incrementedDate: DateTime } {
+    let incrementIndex = 0
+    let incrementedDate: DateTime = initialdate
+    switch (timeStep) {
+      case TimeStep.YEAR:
+        incrementedDate = initialdate.plus({ year: increment })
+        incrementIndex =
+          increment < 0 &&
+          lastDataDate.year >= incrementedDate.year &&
+          (lastDataDate.year - incrementedDate.year) % 5 === 0
+            ? 1
+            : increment > 0 &&
+              lastDataDate.year >= incrementedDate.year &&
+              (lastDataDate.year - incrementedDate.year) % 5 === 4
+            ? -1
+            : increment < 0 &&
+              lastDataDate.year <= incrementedDate.year &&
+              (incrementedDate.year - lastDataDate.year) % 5 === 0
+            ? 1
+            : increment > 0 &&
+              lastDataDate.year <= incrementedDate.year &&
+              (incrementedDate.year - lastDataDate.year) % 5 === 1
+            ? -1
+            : 0
+        break
+      case TimeStep.MONTH:
+        incrementedDate = initialdate.plus({ month: increment })
+        incrementIndex = initialdate.year - incrementedDate.year
+        break
+      case TimeStep.DAY:
+        incrementedDate = initialdate.plus({ day: increment })
+        if (initialdate.weekday === 1 && incrementedDate.weekday === 7) {
+          incrementIndex = 1
+        } else if (initialdate.weekday === 7 && incrementedDate.weekday === 1) {
+          incrementIndex = -1
+        } else {
+          incrementIndex = 0
+        }
+        break
+      case TimeStep.HOUR:
+        incrementedDate = initialdate.plus({ hour: increment })
+        if (initialdate.hour === 0 && incrementedDate.hour === 23) {
+          incrementIndex = 1
+        } else if (initialdate.hour === 23 && incrementedDate.hour === 0) {
+          incrementIndex = -1
+        } else {
+          incrementIndex = 0
+        }
+        break
+      case TimeStep.HALF_AN_HOUR:
+        incrementedDate = initialdate.plus({ minute: increment * 30 })
+        if (initialdate.hour === 0 && incrementedDate.hour === 23) {
+          incrementIndex = 1
+        } else if (initialdate.hour === 23 && incrementedDate.hour === 0) {
+          incrementIndex = -1
+        } else {
+          incrementIndex = 0
+        }
+        break
+    }
+    return { incrementIndex, incrementedDate }
   }
-  return { incrementIndex, incrementedDate }
-}
 
-export const isDataToCome = (dataload: IDataload, fluidType: FluidType) => {
-  const inter =
-    dataload &&
-    Interval.fromDateTimes(dataload.date, DateTime.local()).count('days')
-  if (fluidType === FluidType.ELECTRICITY && inter < 2) {
-    return true
-  }
-  if (fluidType === FluidType.WATER && inter < 4) {
-    return true
-  }
-  if (fluidType === FluidType.GAS && inter < 3) {
-    return true
-  } else {
-    return false
+  public isDataToCome(dataload: IDataload, fluidType: FluidType) {
+    const inter =
+      dataload &&
+      Interval.fromDateTimes(dataload.date, DateTime.local()).count('days')
+    if (fluidType === FluidType.ELECTRICITY && inter < 2) {
+      return true
+    }
+    if (fluidType === FluidType.WATER && inter < 4) {
+      return true
+    }
+    if (fluidType === FluidType.GAS && inter < 3) {
+      return true
+    } else {
+      return false
+    }
   }
 }