diff --git a/packages/component-invite/src/helpers/User.js b/packages/component-invite/src/helpers/User.js
index e27e068480de08c30ed171c12429898e870389ff..d64a9d9a9f9f29ccf7059d5fbb097eb12cc8e6ef 100644
--- a/packages/component-invite/src/helpers/User.js
+++ b/packages/component-invite/src/helpers/User.js
@@ -80,6 +80,17 @@ const setupReviewerDecisionEmailData = async ({
       timestamp,
     },
   })
+  await mailService.sendNotificationEmail({
+    toEmail: user.email,
+    user,
+    emailType: 'reviewer-thank-you',
+    meta: {
+      collection: { customId: collection.customId, id: collection.id },
+      fragment: { id, title, authorName },
+      handlingEditorName: collection.handlingEditor.name,
+      baseUrl,
+    },
+  })
 }
 
 const setupReviewerUnassignEmail = async ({
diff --git a/packages/component-mail-service/src/Mail.js b/packages/component-mail-service/src/Mail.js
index bd0712b551a9a3041912eed787f165566e73d071..da82365693ca61e4e1d845f487a5211579d2ddff 100644
--- a/packages/component-mail-service/src/Mail.js
+++ b/packages/component-mail-service/src/Mail.js
@@ -345,6 +345,24 @@ module.exports = {
           replacements.signatureName
         }`
         break
+      case 'reviewer-thank-you':
+        subject = `${meta.collection.customId}: Manuscript Review`
+        replacements.previewText = 'Hindawi says thank you'
+        replacements.intro = `Dear Dr. ${user.firstName} ${user.lastName}`
+
+        replacements.paragraph = `Thank you for agreeing to review the manuscript titled "${
+          meta.fragment.title
+        }" by ${meta.fragment.authorName}.`
+        replacements.beforeAnchor =
+          'You can view the full PDF file of the manuscript and post your review report using the following URL:'
+        replacements.afterAnchor = ''
+        replacements.signatureName = meta.handlingEditorName
+        textBody = `${replacements.intro} ${replacements.paragraph} ${
+          replacements.beforeAnchor
+        } ${replacements.detailsUrl} ${replacements.afterAnchor} ${
+          replacements.signatureName
+        }`
+        break
       default:
         subject = 'Hindawi Notification!'
         break
diff --git a/packages/components-faraday/src/components/MakeRecommendation/RecommendWizard.js b/packages/components-faraday/src/components/MakeRecommendation/RecommendWizard.js
index 3519e1a5eb6371d2f5517b49fac44dfa0c3bcd7c..f34bc77bef13e42f38b5cdceea349380235c0dc6 100644
--- a/packages/components-faraday/src/components/MakeRecommendation/RecommendWizard.js
+++ b/packages/components-faraday/src/components/MakeRecommendation/RecommendWizard.js
@@ -3,10 +3,11 @@ import { get } from 'lodash'
 import { Icon } from '@pubsweet/ui'
 import { connect } from 'react-redux'
 import styled from 'styled-components'
-import { getFormValues, reset as resetForm } from 'redux-form'
 import { compose, withState, withHandlers } from 'recompose'
+import { getFormValues, reset as resetForm } from 'redux-form'
 
-import { StepOne, StepTwo, RootContainer } from './'
+import { StepOne, StepTwo } from './'
+import { FormItems } from '../UIComponents'
 import {
   selectError,
   selectFetching,
@@ -24,12 +25,17 @@ const RecommendWizard = ({
   recommendationError,
   ...rest
 }) => (
-  <RootContainer>
+  <FormItems.RootContainer>
     <IconButton onClick={hideModal}>
       <Icon primary>x</Icon>
     </IconButton>
     {step === 0 && (
-      <StepOne disabled={!decision} onSubmit={nextStep} {...rest} />
+      <StepOne
+        disabled={!decision}
+        hideModal={hideModal}
+        onSubmit={nextStep}
+        {...rest}
+      />
     )}
     {step === 1 && (
       <StepTwo
@@ -40,7 +46,7 @@ const RecommendWizard = ({
         recommendationError={recommendationError}
       />
     )}
-  </RootContainer>
+  </FormItems.RootContainer>
 )
 
 export default compose(
diff --git a/packages/components-faraday/src/components/MakeRecommendation/Recommendation.js b/packages/components-faraday/src/components/MakeRecommendation/Recommendation.js
index 004eb9ebe53b03c89fbe5d46359ec70868f5f611..dd47f928dbdb054d46386617d829e88708ba5772 100644
--- a/packages/components-faraday/src/components/MakeRecommendation/Recommendation.js
+++ b/packages/components-faraday/src/components/MakeRecommendation/Recommendation.js
@@ -29,11 +29,17 @@ export default compose(
     modalComponent: ModalComponent,
   })),
   withHandlers({
-    showFirstStep: ({ collectionId, fragmentId, showModal }) => () => {
+    showFirstStep: ({
+      showModal,
+      hideModal,
+      fragmentId,
+      collectionId,
+    }) => () => {
       showModal({
-        type: SHOW_WIZARD,
-        collectionId,
+        hideModal,
         fragmentId,
+        collectionId,
+        type: SHOW_WIZARD,
       })
     },
   }),
diff --git a/packages/components-faraday/src/components/MakeRecommendation/StepOne.js b/packages/components-faraday/src/components/MakeRecommendation/StepOne.js
index 5ce88ae43199a61e31aa07daa504e2bc1c6fb5dd..fc20adb61b276af9f16aabb22e81fec792d2f026 100644
--- a/packages/components-faraday/src/components/MakeRecommendation/StepOne.js
+++ b/packages/components-faraday/src/components/MakeRecommendation/StepOne.js
@@ -2,13 +2,10 @@ import React from 'react'
 import { reduxForm } from 'redux-form'
 import { RadioGroup, ValidatedField, Button } from '@pubsweet/ui'
 
-import { RootContainer, Row, RowItem, Title } from './'
+import { utils } from './'
+import { FormItems } from '../UIComponents'
 
-const radioOptions = [
-  { value: 'reject', label: 'Reject' },
-  { value: 'publish', label: 'Publish' },
-  { value: 'revise', label: 'Request revision' },
-]
+const { RootContainer, Row, RowItem, Title } = FormItems
 
 const StepOne = ({ hideModal, disabled, onSubmit }) => (
   <RootContainer>
@@ -17,7 +14,11 @@ const StepOne = ({ hideModal, disabled, onSubmit }) => (
       <RowItem>
         <ValidatedField
           component={input => (
-            <RadioGroup name="decision" options={radioOptions} {...input} />
+            <RadioGroup
+              name="decision"
+              options={utils.recommendationOptions}
+              {...input}
+            />
           )}
           name="decision"
         />
diff --git a/packages/components-faraday/src/components/MakeRecommendation/StepTwo.js b/packages/components-faraday/src/components/MakeRecommendation/StepTwo.js
index 1f7f86db265fb432e5bed61a5a7f0411ee44827a..90f94848451dd8bdc107dd4c9858cc45107ec5e6 100644
--- a/packages/components-faraday/src/components/MakeRecommendation/StepTwo.js
+++ b/packages/components-faraday/src/components/MakeRecommendation/StepTwo.js
@@ -14,7 +14,10 @@ import {
   ValidatedField,
 } from '@pubsweet/ui'
 
-import {
+import { utils } from './'
+import { FormItems } from '../UIComponents'
+
+const {
   Row,
   Err,
   Label,
@@ -23,12 +26,7 @@ import {
   Textarea,
   RootContainer,
   FormContainer,
-} from './'
-
-const revisionOptions = [
-  { value: 'minor', label: 'Minor' },
-  { value: 'major', label: 'Major' },
-]
+} = FormItems
 
 const Form = RootContainer.withComponent(FormContainer)
 
@@ -86,7 +84,7 @@ const StepTwo = ({
                 <RadioGroup
                   name="revision.revision-type"
                   {...input}
-                  options={revisionOptions}
+                  options={utils.revisionOptions}
                 />
               )}
               name="revision.revisionType"
diff --git a/packages/components-faraday/src/components/MakeRecommendation/index.js b/packages/components-faraday/src/components/MakeRecommendation/index.js
index a8545992fa0500b61b139077740ab9b9a54e2431..9eb54e667aef35486ff67219b71d6ea64ea1e4f6 100644
--- a/packages/components-faraday/src/components/MakeRecommendation/index.js
+++ b/packages/components-faraday/src/components/MakeRecommendation/index.js
@@ -1,4 +1,6 @@
-export * from './FormItems'
+import * as utils from './utils'
+
+export { utils }
 export { default as StepOne } from './StepOne'
 export { default as StepTwo } from './StepTwo'
 export { default as Recommendation } from './Recommendation'
diff --git a/packages/components-faraday/src/components/MakeRecommendation/utils.js b/packages/components-faraday/src/components/MakeRecommendation/utils.js
new file mode 100644
index 0000000000000000000000000000000000000000..fd9ebee92cb62b16c18bfa71a8e51190fc123d8f
--- /dev/null
+++ b/packages/components-faraday/src/components/MakeRecommendation/utils.js
@@ -0,0 +1,10 @@
+export const recommendationOptions = [
+  { value: 'reject', label: 'Reject' },
+  { value: 'publish', label: 'Publish' },
+  { value: 'revise', label: 'Request revision' },
+]
+
+export const revisionOptions = [
+  { value: 'minor', label: 'Minor' },
+  { value: 'major', label: 'Major' },
+]
diff --git a/packages/components-faraday/src/components/SignUp/FormItems.js b/packages/components-faraday/src/components/SignUp/FormItems.js
deleted file mode 100644
index 22089ca2c007dc4899737333d059efa744b5f0bd..0000000000000000000000000000000000000000
--- a/packages/components-faraday/src/components/SignUp/FormItems.js
+++ /dev/null
@@ -1,65 +0,0 @@
-import { th } from '@pubsweet/ui'
-import styled from 'styled-components'
-
-export const RootContainer = styled.div`
-  background-color: ${th('backgroundColorReverse')};
-  border: ${th('borderDefault')};
-  display: flex;
-  flex-direction: column;
-  margin: 0 auto;
-  max-width: 550px;
-  min-width: 300px;
-  padding: 20px;
-`
-
-export const Title = styled.div`
-  color: ${th('colorPrimary')};
-  font-family: ${th('fontHeading')};
-  font-size: ${th('fontSizeHeading5')};
-  font-weight: bold;
-  margin: 10px auto;
-  text-align: center;
-`
-export const Subtitle = styled.div`
-  font-family: ${th('fontReading')};
-  font-size: ${th('fontSizeBase')};
-  font-weight: normal;
-  margin: 10px auto;
-  text-align: center;
-`
-
-export const Email = styled.div`
-  font-family: ${th('fontReading')};
-  font-size: ${th('fontSizeBase')};
-  font-weight: normal;
-  margin: 10px auto;
-  text-align: center;
-`
-
-export const FormContainer = styled.form``
-
-export const Row = styled.div`
-  align-items: center;
-  display: flex;
-  flex-direction: row;
-  justify-content: space-evenly;
-  margin: ${th('gridUnit')} 0;
-`
-
-export const RowItem = styled.div`
-  flex: 1;
-  margin-right: ${th('gridUnit')};
-`
-
-export const Label = styled.div`
-  font-family: ${th('fontReading')};
-  font-size: ${th('fontSizeBaseSmall')};
-  text-transform: uppercase;
-`
-export const Err = styled.span`
-  color: ${th('colorError')};
-  font-family: ${th('fontReading')};
-  font-size: ${th('fontSizeBase')};
-  margin-top: calc(${th('gridUnit')}*-1);
-  text-align: center;
-`
diff --git a/packages/components-faraday/src/components/SignUp/ReviewerDecline.js b/packages/components-faraday/src/components/SignUp/ReviewerDecline.js
index 455db357d33b6463e8fbdc8eaa181073859cd6db..74f726dd83b84c55f25a7ff531081c3590aa1ca5 100644
--- a/packages/components-faraday/src/components/SignUp/ReviewerDecline.js
+++ b/packages/components-faraday/src/components/SignUp/ReviewerDecline.js
@@ -6,12 +6,14 @@ import { withJournal } from 'xpub-journal'
 import { replace } from 'react-router-redux'
 import { compose, lifecycle } from 'recompose'
 
-import { RootContainer, Title } from './FormItems'
-import { reviewerDecline } from '../../redux/reviewers'
 import { redirectToError } from '../utils'
+import { FormItems } from '../UIComponents'
+import { reviewerDecline } from '../../redux/reviewers'
+
+const { RootContainer, Title } = FormItems
 
 const ReviewerDecline = ({ journal: { metadata: { email } } }) => (
-  <RootContainer>
+  <RootContainer bordered>
     <Title>Thank you for letting us know.</Title>
     <div>
       <Description>
diff --git a/packages/components-faraday/src/components/SignUp/ReviewerInviteDecision.js b/packages/components-faraday/src/components/SignUp/ReviewerInviteDecision.js
index 8065fa65e51127e6eebe88734ec3f6e0866f3cc0..c47b24cc609ca9ab64af40274a09aabd538d91ca 100644
--- a/packages/components-faraday/src/components/SignUp/ReviewerInviteDecision.js
+++ b/packages/components-faraday/src/components/SignUp/ReviewerInviteDecision.js
@@ -8,7 +8,11 @@ import { compose, withState, lifecycle } from 'recompose'
 import { loginUser } from 'pubsweet-component-login/actions'
 import { Button, ValidatedField, TextField } from '@pubsweet/ui'
 
-import {
+import { redirectToError } from '../utils'
+import { reviewerDecision, setReviewerPassword } from '../../redux/reviewers'
+import { FormItems } from '../UIComponents'
+
+const {
   Row,
   Err,
   Title,
@@ -18,9 +22,7 @@ import {
   Subtitle,
   RootContainer,
   FormContainer,
-} from './FormItems'
-import { reviewerDecision, setReviewerPassword } from '../../redux/reviewers'
-import { redirectToError } from '../utils'
+} = FormItems
 
 const agreeText = `You have been invited to review a manuscript on the Hindawi platform. Please set a password and proceed to the manuscript.`
 const declineText = `You have decline to work on a manuscript.`
@@ -33,7 +35,7 @@ const ReviewerInviteDecision = ({
   reviewerEmail,
   errorMessage,
 }) => (
-  <RootContainer>
+  <RootContainer bordered>
     <Title>Hindawi Invitation</Title>
     <Subtitle>{agree === 'true' ? agreeText : declineText}</Subtitle>
     <Email>{reviewerEmail}</Email>
diff --git a/packages/components-faraday/src/components/SignUp/ReviewerSignUp.js b/packages/components-faraday/src/components/SignUp/ReviewerSignUp.js
index d1771f7bd0d2b930677b232ff559ffd619df1e78..cda07d2d289b3020b08171e64e58c5c2659f459a 100644
--- a/packages/components-faraday/src/components/SignUp/ReviewerSignUp.js
+++ b/packages/components-faraday/src/components/SignUp/ReviewerSignUp.js
@@ -3,8 +3,8 @@ import { isEmpty } from 'lodash'
 import { Route } from 'react-router-dom'
 import { AuthenticatedComponent } from 'pubsweet-client'
 
-import { ReviewerInviteDecision, ReviewerDecline } from './'
 import { parseSearchParams } from './utils'
+import { ReviewerInviteDecision, ReviewerDecline } from './'
 
 const PrivateRoute = ({ component: Component, token, ...rest }) => (
   <Route
@@ -28,8 +28,8 @@ const ReviewerSignUp = ({ location }) => {
     <Route
       component={props => (
         <ReviewerDecline
-          {...props}
           invitationToken={invitationToken}
+          {...props}
           {...rest}
         />
       )}
diff --git a/packages/components-faraday/src/components/SignUp/SignUpInvitationForm.js b/packages/components-faraday/src/components/SignUp/SignUpInvitationForm.js
index eae8daeff0553e71f32e629f826613e832102da6..f7b21c17851e6a0d6dcffe32d66c3fdd11bf77c7 100644
--- a/packages/components-faraday/src/components/SignUp/SignUpInvitationForm.js
+++ b/packages/components-faraday/src/components/SignUp/SignUpInvitationForm.js
@@ -2,19 +2,21 @@ import React from 'react'
 
 import Step0 from './SignUpStep0'
 import Step1 from './SignUpStep1'
-import { RootContainer, Title, Subtitle, Email, Err } from './FormItems'
+import { FormItems } from '../UIComponents'
+
+const { RootContainer, Title, Subtitle, Email, Err } = FormItems
 
 const SignUpInvitation = ({
-  journal,
+  step,
   email,
   token,
-  step,
+  error,
+  journal,
   nextStep,
-  submitConfirmation,
   initialValues,
-  error,
+  submitConfirmation,
 }) => (
-  <RootContainer>
+  <RootContainer bordered>
     <Title>Add New Account Details</Title>
     <Subtitle>
       Your details have been pre-filled, please review and confirm before set
diff --git a/packages/components-faraday/src/components/SignUp/SignUpInvitationPage.js b/packages/components-faraday/src/components/SignUp/SignUpInvitationPage.js
index c6c01d53dc844b9b22222a7554740c1f77b58f42..508ecf4d0edea24a67dfbb18d67fa39165cc21c5 100644
--- a/packages/components-faraday/src/components/SignUp/SignUpInvitationPage.js
+++ b/packages/components-faraday/src/components/SignUp/SignUpInvitationPage.js
@@ -1,8 +1,8 @@
 import { get } from 'lodash'
-import { create } from 'pubsweet-client/src/helpers/api'
 import { withJournal } from 'xpub-journal'
-import { loginUser } from 'pubsweet-component-login/actions'
 import { SubmissionError } from 'redux-form'
+import { create } from 'pubsweet-client/src/helpers/api'
+import { loginUser } from 'pubsweet-component-login/actions'
 import { compose, withState, withProps, withHandlers } from 'recompose'
 
 import SignUpInvitation from './SignUpInvitationForm'
diff --git a/packages/components-faraday/src/components/SignUp/SignUpStep0.js b/packages/components-faraday/src/components/SignUp/SignUpStep0.js
index 03c8d2812a8e03509d07beab6a7c4989d2d5643d..93c863e78a36fce55098a47234b6a92250a8efff 100644
--- a/packages/components-faraday/src/components/SignUp/SignUpStep0.js
+++ b/packages/components-faraday/src/components/SignUp/SignUpStep0.js
@@ -4,7 +4,9 @@ import { isUndefined } from 'lodash'
 import { required } from 'xpub-validators'
 import { Button, ValidatedField, TextField, Menu } from '@pubsweet/ui'
 
-import { FormContainer, Row, RowItem, Label } from './FormItems'
+import { FormItems } from '../UIComponents'
+
+const { FormContainer, Row, RowItem, Label } = FormItems
 
 const Step0 = ({ journal, handleSubmit, initialValues, error }) =>
   !isUndefined(initialValues) ? (
diff --git a/packages/components-faraday/src/components/SignUp/SignUpStep1.js b/packages/components-faraday/src/components/SignUp/SignUpStep1.js
index 706961d985579837b711c13e661756933ffb5956..f5469320fbd6d05098fbdd9c4f78da2005e6a39f 100644
--- a/packages/components-faraday/src/components/SignUp/SignUpStep1.js
+++ b/packages/components-faraday/src/components/SignUp/SignUpStep1.js
@@ -3,7 +3,9 @@ import { reduxForm } from 'redux-form'
 import { required } from 'xpub-validators'
 import { Button, ValidatedField, TextField } from '@pubsweet/ui'
 
-import { FormContainer, Row, RowItem, Label, Err } from './FormItems'
+import { FormItems } from '../UIComponents'
+
+const { FormContainer, Row, RowItem, Label, Err } = FormItems
 
 const Step1 = ({ journal, handleSubmit, error }) => (
   <FormContainer onSubmit={handleSubmit}>
diff --git a/packages/components-faraday/src/components/MakeRecommendation/FormItems.js b/packages/components-faraday/src/components/UIComponents/FormItems.js
similarity index 97%
rename from packages/components-faraday/src/components/MakeRecommendation/FormItems.js
rename to packages/components-faraday/src/components/UIComponents/FormItems.js
index 66534ec0c5d026dc771fefd50fa05596c74d05d6..83a36e4dc3c62bb3175abfd79ff4c3952284cb4f 100644
--- a/packages/components-faraday/src/components/MakeRecommendation/FormItems.js
+++ b/packages/components-faraday/src/components/UIComponents/FormItems.js
@@ -58,22 +58,24 @@ export const Label = styled.div`
   font-size: ${th('fontSizeBaseSmall')};
   text-transform: uppercase;
 `
+
 export const Err = styled.span`
   color: ${th('colorError')};
   font-family: ${th('fontReading')};
   font-size: ${th('fontSizeBase')};
-  margin-top: calc(${th('gridUnit')}*-1);
+  margin-top: calc(${th('gridUnit')} * -1);
   text-align: center;
 `
 
 export const Textarea = styled.textarea`
-  width: 400px;
-  padding: calc(${th('subGridUnit')}*2);
-  font-size: ${th('fontSizeBaseSmall')};
-  font-family: ${th('fontWriting')};
   border-color: ${({ hasError }) =>
     hasError ? th('colorError') : th('colorPrimary')};
+  font-size: ${th('fontSizeBaseSmall')};
+  font-family: ${th('fontWriting')};
+  padding: calc(${th('subGridUnit')}*2);
   transition: all 300ms linear;
+  width: 400px;
+
   &:read-only {
     background-color: ${th('colorBackgroundHue')};
   }
diff --git a/packages/components-faraday/src/components/UIComponents/index.js b/packages/components-faraday/src/components/UIComponents/index.js
index 0b3250328118937d535b00e72bb038c6c45fb863..738dc3c98c71921c7bcd8c964b59457d0c29cdb4 100644
--- a/packages/components-faraday/src/components/UIComponents/index.js
+++ b/packages/components-faraday/src/components/UIComponents/index.js
@@ -1,3 +1,6 @@
+import * as FormItems from './FormItems'
+
+export { FormItems }
 export { default as Logo } from './Logo'
 export { default as Spinner } from './Spinner'
 export { default as NotFound } from './NotFound'