diff --git a/src/contractActivation.js b/src/core/contractActivation.js
similarity index 91%
rename from src/contractActivation.js
rename to src/core/contractActivation.js
index a1d02eb00fe08b23a8ac61156ff94458dd085dd0..30d65658f435fb2f2d51716e331334c6177d01d4 100644
--- a/src/contractActivation.js
+++ b/src/core/contractActivation.js
@@ -1,8 +1,8 @@
 // @ts-check
 const { log, errors } = require('cozy-konnector-libs')
 const soapRequest = require('easy-soap-request')
-const { parseTags, parseValue } = require('./parsing')
-const { commanderCollectePublicationMesures } = require('./requests/sge')
+const { parseTags, parseValue } = require('../helpers/parsing')
+const { commanderCollectePublicationMesures } = require('../requests/sge')
 const xml2js = require('xml2js')
 
 /**
diff --git a/src/contractTermination.js b/src/core/contractTermination.js
similarity index 90%
rename from src/contractTermination.js
rename to src/core/contractTermination.js
index 46a8f2f70cca2127f3b71df6c0dfb15dc0bece08..9334f85679a9483045b2a3d5b6c3500922d9cd5f 100644
--- a/src/contractTermination.js
+++ b/src/core/contractTermination.js
@@ -1,8 +1,8 @@
 // @ts-check
 const { log, errors } = require('cozy-konnector-libs')
 const soapRequest = require('easy-soap-request')
-const { parseTags, parseValue } = require('./parsing')
-const { commanderArretServiceSouscritMesures } = require('./requests/sge')
+const { parseTags, parseValue } = require('../helpers/parsing')
+const { commanderArretServiceSouscritMesures } = require('../requests/sge')
 const xml2js = require('xml2js')
 
 /**
diff --git a/src/contractVerification.js b/src/core/contractVerification.js
similarity index 87%
rename from src/contractVerification.js
rename to src/core/contractVerification.js
index 327aaab606afdb2fb3d23698c0fc7b218934a73a..fc9558a488d8d1ca5ad59f7f08e3e72d58e4a7c2 100644
--- a/src/contractVerification.js
+++ b/src/core/contractVerification.js
@@ -1,10 +1,10 @@
 // @ts-check
 const { log, errors } = require('cozy-konnector-libs')
 const soapRequest = require('easy-soap-request')
-const { parseTags, parseValue, parseContracts } = require('./parsing')
-const { rechercherServicesSouscritsMesures } = require('./requests/sge')
+const { parseTags, parseValue, parseContracts } = require('../helpers/parsing')
+const { rechercherServicesSouscritsMesures } = require('../requests/sge')
 const xml2js = require('xml2js')
-const { contractState } = require('./enum')
+const { contractState } = require('./types/enum')
 
 /**
  * @param {string} url
diff --git a/src/findUserPdl.js b/src/core/findUserPdl.js
similarity index 90%
rename from src/findUserPdl.js
rename to src/core/findUserPdl.js
index 5db6d7b98530ad633ec9b487d8f853957b6a51c4..e7c46bbdbb9de4c59ff76f66d36da898e97f3f08 100644
--- a/src/findUserPdl.js
+++ b/src/core/findUserPdl.js
@@ -1,8 +1,8 @@
 // @ts-check
 const { log, errors } = require('cozy-konnector-libs')
 const soapRequest = require('easy-soap-request')
-const { parseUserPdl, parseTags, parseValue } = require('./parsing')
-const { rechercherPoint } = require('./requests/sge')
+const { parseUserPdl, parseTags, parseValue } = require('../helpers/parsing')
+const { rechercherPoint } = require('../requests/sge')
 const xml2js = require('xml2js')
 
 /**
diff --git a/src/enum.js b/src/core/types/enum.js
similarity index 100%
rename from src/enum.js
rename to src/core/types/enum.js
diff --git a/src/types.js b/src/core/types/types.js
similarity index 100%
rename from src/types.js
rename to src/core/types/types.js
diff --git a/src/verifyUserIdentity.js b/src/core/verifyUserIdentity.js
similarity index 94%
rename from src/verifyUserIdentity.js
rename to src/core/verifyUserIdentity.js
index 9db40765b7b9de2b07be2a2d4abc45d8e977283c..0e67cc691244be45fbbabf4e24cfb42dc347ae12 100644
--- a/src/verifyUserIdentity.js
+++ b/src/core/verifyUserIdentity.js
@@ -1,7 +1,7 @@
 // @ts-check
 const { log, errors } = require('cozy-konnector-libs')
 const { findUserPdl } = require('./findUserPdl')
-const { getInseeCode } = require('./requests/insee')
+const { getInseeCode } = require('../requests/insee')
 
 /**
  * Verify user identity
diff --git a/src/aggregate.js b/src/helpers/aggregate.js
similarity index 100%
rename from src/aggregate.js
rename to src/helpers/aggregate.js
diff --git a/src/parsing.js b/src/helpers/parsing.js
similarity index 100%
rename from src/parsing.js
rename to src/helpers/parsing.js
diff --git a/src/index.js b/src/index.js
index 3b471b4f14a519a60463a78220492e4211116ea4..f348441da2aa098c789d86088e5588b3d76c5e8e 100644
--- a/src/index.js
+++ b/src/index.js
@@ -10,14 +10,14 @@ const soapRequest = require('easy-soap-request')
 const moment = require('moment')
 require('moment-timezone')
 const xml2js = require('xml2js')
-const { buildAgregatedData } = require('./aggregate')
+const { buildAgregatedData } = require('./helpers/aggregate')
 const {
   parseSgeXmlData,
   formateDataForDoctype,
   parseTags,
   parseValue,
   parseContractStartDate,
-} = require('./parsing')
+} = require('./helpers/parsing')
 const {
   consulterDonneesTechniquesContractuelles,
   consultationMesuresDetailleesMaxPower,
@@ -29,10 +29,10 @@ const {
   getBoConsent,
   deleteBoConsent,
 } = require('./requests/bo')
-const { verifyUserIdentity } = require('./verifyUserIdentity')
-const { activateContract } = require('./contractActivation')
-const { verifyContract } = require('./contractVerification')
-const { terminateContract } = require('./contractTermination')
+const { verifyUserIdentity } = require('./core/verifyUserIdentity')
+const { activateContract } = require('./core/contractActivation')
+const { verifyContract } = require('./core/contractVerification')
+const { terminateContract } = require('./core/contractTermination')
 const { saveAccountData } = require('./requests/cozy')
 
 moment.locale('fr') // set the language