diff --git a/packages/component-faraday-selectors/src/index.js b/packages/component-faraday-selectors/src/index.js
index 0b9b1ab4d1a1b56a7e0753fb96eb1db46d2ae11b..6e1c18975f59a435cf3ae86e109456ba78b6ed3b 100644
--- a/packages/component-faraday-selectors/src/index.js
+++ b/packages/component-faraday-selectors/src/index.js
@@ -16,7 +16,7 @@ const canMakeRecommendationStatuses = [
 export const canMakeRecommendation = (state, collection, fragment = {}) => {
   if (fragment.id !== last(collection.fragments)) return false
   const isHE = isHEToManuscript(state, collection.id)
-  const status = get(collection, 'status')
+  const status = get(collection, 'status', 'draft')
   return isHE && canMakeRecommendationStatuses.includes(status)
 }
 
@@ -74,7 +74,7 @@ export const getHERecommendation = (state, collectionId, fragmentId) => {
 const canMakeDecisionStatuses = ['submitted', 'pendingApproval']
 export const canMakeDecision = (state, collection, fragment = {}) => {
   if (fragment.id !== last(collection.fragments)) return false
-  const status = get(collection, 'status')
+  const status = get(collection, 'status', 'draft')
 
   const isEIC = currentUserIs(state, 'adminEiC')
   return isEIC && canMakeDecisionStatuses.includes(status)
@@ -84,7 +84,7 @@ const canEditManuscriptStatuses = ['draft', 'technicalChecks', 'inQA']
 export const canEditManuscript = (state, collection, fragment = {}) => {
   const isAdmin = currentUserIs(state, 'isAdmin')
   if (!isAdmin || fragment.id !== last(collection.fragments)) return false
-  const status = get(collection, 'status')
+  const status = get(collection, 'status', 'draft')
 
   return canEditManuscriptStatuses.includes(status)
 }
@@ -93,7 +93,7 @@ const canOverrideTechnicalChecksStatuses = ['technicalChecks', 'inQA']
 export const canOverrideTechnicalChecks = (state, collection) => {
   const isAdmin = currentUserIs(state, 'isAdmin')
   if (!isAdmin) return false
-  const status = get(collection, 'status')
+  const status = get(collection, 'status', 'draft')
 
   return canOverrideTechnicalChecksStatuses.includes(status)
 }
diff --git a/packages/component-faraday-ui/src/ManuscriptDetailsTop.js b/packages/component-faraday-ui/src/ManuscriptDetailsTop.js
deleted file mode 100644
index beb249fab4ffb295d9d9cf8c7530c255981a1897..0000000000000000000000000000000000000000
--- a/packages/component-faraday-ui/src/ManuscriptDetailsTop.js
+++ /dev/null
@@ -1,47 +0,0 @@
-import React from 'react'
-import { get } from 'lodash'
-import {
-  Row,
-  Item,
-  Text,
-  ActionLink,
-  IconButton,
-  DownloadZipFiles,
-  PreviewFile,
-  ManuscriptVersion,
-} from 'pubsweet-component-faraday-ui'
-import { DateParser } from '@pubsweet/ui'
-
-const ManuscriptDetailsTop = ({
-  history,
-  getSignedUrl,
-  collection = {},
-  fragment = {},
-}) => (
-  <Row alignItems="center" mb={1}>
-    <Item justify="flex-start">
-      <ActionLink icon="arrow-left" onClick={() => history.push('/')}>
-        Dashboard
-      </ActionLink>
-    </Item>
-    <Item justify="flex-end">
-      <PreviewFile
-        file={get(fragment, 'files.manuscripts[0]', {})}
-        getSignedUrl={getSignedUrl}
-      />
-      <DownloadZipFiles
-        archiveName={`ID-${collection.customId}`}
-        collectionId={collection.id}
-        fragmentId={fragment.id}
-      >
-        <IconButton icon="download" iconSize={2} mr={3} secondary />
-      </DownloadZipFiles>
-      <DateParser durationThreshold={0} timestamp={fragment.submitted || ''}>
-        {timestamp => <Text mr={1}>Updated on {timestamp}</Text>}
-      </DateParser>
-      <ManuscriptVersion collection={collection} fragment={fragment} />
-    </Item>
-  </Row>
-)
-
-export default ManuscriptDetailsTop
diff --git a/packages/component-faraday-ui/src/gridItems/Item.js b/packages/component-faraday-ui/src/gridItems/Item.js
index 282ec34e78496dc3e5296fb1039c4a8bf9792ff6..b289d76c7d788765aa18763dd635ef0c2cde5f8d 100644
--- a/packages/component-faraday-ui/src/gridItems/Item.js
+++ b/packages/component-faraday-ui/src/gridItems/Item.js
@@ -11,7 +11,7 @@ export default styled.div.attrs({
   flex: ${({ flex }) => (isNumber(flex) ? flex : 1)};
   flex-direction: ${({ vertical }) => (vertical ? 'column' : 'row')};
   justify-content: ${({ justify }) => justify || 'initial'};
-  align-items: ${({ alignItems }) => alignItems || 'center'};
+  align-items: ${({ alignItems }) => alignItems || 'initial'};
 
   ${marginHelper};
 `
diff --git a/packages/component-faraday-ui/src/index.js b/packages/component-faraday-ui/src/index.js
index a8aafac48494030749f72d2e58619cf3108deb46..e2c492c80004fe712913042d4e91c7a4a84fd282 100644
--- a/packages/component-faraday-ui/src/index.js
+++ b/packages/component-faraday-ui/src/index.js
@@ -23,10 +23,10 @@ export { default as WizardAuthors } from './WizardAuthors'
 export { default as WizardFiles } from './WizardFiles'
 export { default as PreviewFile } from './PreviewFile'
 export { default as DownloadZipFiles } from './DownloadZipFiles'
+export { default as ManuscriptVersion } from './ManuscriptVersion'
 
 // Manuscript Details
-export { default as ManuscriptVersion } from './ManuscriptVersion'
-export { default as ManuscriptDetailsTop } from './ManuscriptDetailsTop'
+export * from './manuscriptDetails'
 
 export * from './styledHelpers'
 
diff --git a/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptDetailsTop.js b/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptDetailsTop.js
new file mode 100644
index 0000000000000000000000000000000000000000..5ffa60c3dbc7dc64255862afefaab56ab1227258
--- /dev/null
+++ b/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptDetailsTop.js
@@ -0,0 +1,114 @@
+import React from 'react'
+import { get } from 'lodash'
+import { connect } from 'react-redux'
+import { DateParser } from '@pubsweet/ui'
+import { withRouter } from 'react-router-dom'
+import { compose, withHandlers } from 'recompose'
+import {
+  canMakeDecision,
+  canMakeRecommendation,
+  canEditManuscript,
+  canOverrideTechnicalChecks,
+} from 'pubsweet-component-faraday-selectors/src'
+
+import {
+  Row,
+  Item,
+  Text,
+  ActionLink,
+  IconButton,
+  DownloadZipFiles,
+  PreviewFile,
+  ManuscriptVersion,
+} from 'pubsweet-component-faraday-ui'
+
+const ManuscriptDetailsTop = ({
+  history,
+  getSignedUrl,
+  collection = {},
+  fragment = {},
+  goToEdit,
+  canEditManuscript,
+  goToTechnicalCheck,
+  canOverrideTechChecks,
+}) => (
+  <Row alignItems="center" mb={1}>
+    <Item alignItems="center" justify="flex-start">
+      <ActionLink icon="arrow-left" onClick={() => history.push('/')}>
+        Dashboard
+      </ActionLink>
+    </Item>
+    <Item alignItems="center" justify="flex-end">
+      {canOverrideTechChecks && (
+        <IconButton
+          data-test-id={`button-qa-manuscript-${fragment.id}`}
+          icon="check-square"
+          iconSize={2}
+          mr={1}
+          onClick={goToTechnicalCheck(collection)}
+          secondary
+          title="Technical Checks"
+        />
+      )}
+      {canEditManuscript && (
+        <IconButton
+          data-test-id={`button-edit-manuscript-${fragment.id}`}
+          icon="edit"
+          iconSize={2}
+          mr={2}
+          onClick={goToEdit(collection, fragment)}
+          secondary
+          title="Edit Manuscript"
+        />
+      )}
+      <PreviewFile
+        file={get(fragment, 'files.manuscripts[0]', {})}
+        getSignedUrl={getSignedUrl}
+      />
+      <DownloadZipFiles
+        archiveName={`ID-${collection.customId}`}
+        collectionId={collection.id}
+        fragmentId={fragment.id}
+      >
+        <IconButton icon="download" iconSize={2} mr={3} secondary />
+      </DownloadZipFiles>
+      <DateParser durationThreshold={0} timestamp={fragment.submitted || ''}>
+        {timestamp => <Text mr={1}>Updated on {timestamp}</Text>}
+      </DateParser>
+      <ManuscriptVersion collection={collection} fragment={fragment} />
+    </Item>
+  </Row>
+)
+
+export default compose(
+  withRouter,
+  connect((state, { collection, fragment }) => ({
+    canMakeDecision: canMakeDecision(state, collection, fragment),
+    canMakeRecommendation: canMakeRecommendation(state, collection, fragment),
+    canEditManuscript: canEditManuscript(state, collection, fragment),
+    canOverrideTechChecks: canOverrideTechnicalChecks(state, collection),
+  })),
+  withHandlers({
+    goToEdit: ({ history }) => (collection, fragment) => () => {
+      history.push(
+        `/projects/${collection.id}/versions/${fragment.id}/submit`,
+        {
+          editMode: true,
+        },
+      )
+    },
+    goToTechnicalCheck: ({ history }) => collection => () => {
+      const {
+        status,
+        id,
+        customId,
+        technicalChecks: { token = '' },
+      } = collection
+      const stage = status === 'technicalChecks' ? 'eqs' : 'eqa'
+      history.push({
+        pathname: `/${stage}-decision`,
+        search: `?collectionId=${id}&customId=${customId}&token=${token}`,
+      })
+    },
+  }),
+)(ManuscriptDetailsTop)
diff --git a/packages/component-faraday-ui/src/ManuscriptDetailsTop.md b/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptDetailsTop.md
similarity index 100%
rename from packages/component-faraday-ui/src/ManuscriptDetailsTop.md
rename to packages/component-faraday-ui/src/manuscriptDetails/ManuscriptDetailsTop.md
diff --git a/packages/component-faraday-ui/src/manuscriptDetails/index.js b/packages/component-faraday-ui/src/manuscriptDetails/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..624245e73e1a08239472c700fb5436d94eb8d8f7
--- /dev/null
+++ b/packages/component-faraday-ui/src/manuscriptDetails/index.js
@@ -0,0 +1 @@
+export { default as ManuscriptDetailsTop } from './ManuscriptDetailsTop'
diff --git a/packages/components-faraday/src/components/index.js b/packages/components-faraday/src/components/index.js
index fc041eee217e057b7d9fc089069fdd4181f0d893..eb71acbe38555f901d46dc242c1e83b45b384ee6 100644
--- a/packages/components-faraday/src/components/index.js
+++ b/packages/components-faraday/src/components/index.js
@@ -1,6 +1,5 @@
 import { Decision } from './MakeDecision'
 import * as Components from './UIComponents'
-import { Recommendation } from './MakeRecommendation'
 
 export { FormItems } from './UIComponents'
 export { default as withVersion } from './Dashboard/withVersion.js'
@@ -9,5 +8,4 @@ export { default as ChangePasswordPage } from './UserProfile/ChangePasswordPage'
 
 export { Decision }
 export { Components }
-export { Recommendation }
 export { DateParser } from './UIComponents'
diff --git a/packages/styleguide/styleguide.config.js b/packages/styleguide/styleguide.config.js
index c53042e291fd363295cd38a85d44141fa8cb0be1..859cc8debcf6bf80d6ba3f96ab1f523c633d4452 100644
--- a/packages/styleguide/styleguide.config.js
+++ b/packages/styleguide/styleguide.config.js
@@ -17,6 +17,11 @@ module.exports = {
       sectionDepth: 1,
       components: ['../component-faraday-ui/src/gridItems/[A-Z]*.js'],
     },
+    {
+      name: 'Manuscript Details',
+      sectionDepth: 1,
+      components: ['../component-faraday-ui/src/manuscriptDetails/[A-Z]*.js'],
+    },
   ],
   skipComponentsWithoutExample: true,
   pagePerSection: true,