diff --git a/packages/component-helper-service/src/services/User.js b/packages/component-helper-service/src/services/User.js
index dbd0eb1f2bf7b6e5995a27df258efbb6a532fb3d..1878092704ad027560176e161e3a526367ea3363 100644
--- a/packages/component-helper-service/src/services/User.js
+++ b/packages/component-helper-service/src/services/User.js
@@ -67,7 +67,7 @@ class User {
   async updateUserTeams({ userId, teamId }) {
     const user = await this.UserModel.find(userId)
     user.teams.push(teamId)
-    user.save()
+    await user.save()
   }
 
   async getActiveAuthors({ fragmentAuthors }) {
diff --git a/packages/component-manuscript-manager/src/routes/fragments/patch.js b/packages/component-manuscript-manager/src/routes/fragments/patch.js
index 3337811e3b0861474fb12cc3e422c1b62e6df9eb..4f975c391c34232517734c2c3e920ad4bfefe7ca 100644
--- a/packages/component-manuscript-manager/src/routes/fragments/patch.js
+++ b/packages/component-manuscript-manager/src/routes/fragments/patch.js
@@ -1,5 +1,6 @@
 const {
   Team,
+  User,
   services,
   Fragment,
   Collection,
@@ -43,6 +44,7 @@ module.exports = models => async (req, res) => {
 
     const collectionHelper = new Collection({ collection })
     const fragmentHelper = new Fragment({ fragment })
+    const userHelper = new User({ UserModel: models.User })
 
     const strategies = {
       he: heRequestRevision,
@@ -61,6 +63,7 @@ module.exports = models => async (req, res) => {
     try {
       const newFragment = await strategies[role].execute({
         models,
+        userHelper,
         notification,
         fragmentHelper,
         collectionHelper,
diff --git a/packages/component-manuscript-manager/src/routes/fragments/strategies/eicRequestRevision.js b/packages/component-manuscript-manager/src/routes/fragments/strategies/eicRequestRevision.js
index 671c507d14d2fc377015764e425c13787601ea05..d62b0b83d4058b26568ac939f4eb7d0417a7d78d 100644
--- a/packages/component-manuscript-manager/src/routes/fragments/strategies/eicRequestRevision.js
+++ b/packages/component-manuscript-manager/src/routes/fragments/strategies/eicRequestRevision.js
@@ -1,7 +1,11 @@
-const { union } = require('lodash')
-
 module.exports = {
-  execute: async ({ models, TeamHelper, fragmentHelper, collectionHelper }) => {
+  execute: async ({
+    models,
+    userHelper,
+    TeamHelper,
+    fragmentHelper,
+    collectionHelper,
+  }) => {
     const eicRequestToRevision = fragmentHelper.getLatestEiCRequestToRevision()
     if (!eicRequestToRevision) {
       throw new Error('No Editor in Chief request to revision has been found.')
@@ -18,26 +22,16 @@ module.exports = {
       fragmentId: newFragment.id,
     })
 
-    const authorIds = newFragment.authors.map(auth => {
-      const { id } = auth
-      return id
-    })
+    const authorIds = newFragment.authors.map(auth => auth.id)
 
-    let authorsTeam = await teamHelper.getTeam({
+    const { id: teamId } = await teamHelper.createTeam({
       role: 'author',
+      members: authorIds,
       objectType: 'fragment',
     })
-
-    if (!authorsTeam) {
-      authorsTeam = await teamHelper.createTeam({
-        role: 'author',
-        members: authorIds,
-        objectType: 'fragment',
-      })
-    } else {
-      authorsTeam.members = union(authorsTeam.members, authorIds)
-      await authorsTeam.save()
-    }
+    authorIds.forEach(id => {
+      userHelper.updateUserTeams({ userId: id, teamId })
+    })
 
     await collectionHelper.updateStatus({ newStatus: 'submitted' })
 
diff --git a/packages/component-manuscript-manager/src/routes/fragments/strategies/heRequestRevision.js b/packages/component-manuscript-manager/src/routes/fragments/strategies/heRequestRevision.js
index fcba20ed4340fb88b2df9b1531f72b5157291b56..2a20da7ba12d003e43ddd97e7e0e814bc1ed225e 100644
--- a/packages/component-manuscript-manager/src/routes/fragments/strategies/heRequestRevision.js
+++ b/packages/component-manuscript-manager/src/routes/fragments/strategies/heRequestRevision.js
@@ -1,8 +1,7 @@
-const { union } = require('lodash')
-
 module.exports = {
   execute: async ({
     models,
+    userHelper,
     TeamHelper,
     notification,
     fragmentHelper,
@@ -36,26 +35,16 @@ module.exports = {
       await newFragment.save()
     }
 
-    const authorIds = newFragment.authors.map(auth => {
-      const { id } = auth
-      return id
-    })
+    const authorIds = newFragment.authors.map(auth => auth.id)
 
-    let authorsTeam = await teamHelper.getTeam({
+    const { id: teamId } = await teamHelper.createTeam({
       role: 'author',
+      members: authorIds,
       objectType: 'fragment',
     })
-
-    if (!authorsTeam) {
-      authorsTeam = await teamHelper.createTeam({
-        role: 'author',
-        members: authorIds,
-        objectType: 'fragment',
-      })
-    } else {
-      authorsTeam.members = union(authorsTeam.members, authorIds)
-      await authorsTeam.save()
-    }
+    authorIds.forEach(id => {
+      userHelper.updateUserTeams({ userId: id, teamId })
+    })
 
     const fragments = await collectionHelper.getAllFragments({
       FragmentModel: models.Fragment,