diff --git a/packages/component-faraday-ui/src/DownloadZipFiles.js b/packages/component-faraday-ui/src/DownloadZipFiles.js
index 3244bb90c623ccfecf7441f86da5a76a1733214d..8e5d34d7c4251e31d7acc0efc995e8562554d40d 100644
--- a/packages/component-faraday-ui/src/DownloadZipFiles.js
+++ b/packages/component-faraday-ui/src/DownloadZipFiles.js
@@ -1,11 +1,6 @@
 import React from 'react'
-import { connect } from 'react-redux'
 import { Spinner } from '@pubsweet/ui'
 import { compose, withState } from 'recompose'
-import {
-  getUserToken,
-  currentUserIsReviewer,
-} from 'pubsweet-component-faraday-selectors'
 import { Item } from 'pubsweet-component-faraday-ui'
 
 import { withZipDownload } from './helpers'
@@ -22,10 +17,6 @@ const DownloadZipFiles = ({ disabled, fetching, children, downloadFiles }) => (
 )
 
 export default compose(
-  connect((state, { collectionId }) => ({
-    token: getUserToken(state),
-    isReviewer: currentUserIsReviewer(state, collectionId),
-  })),
   withState('fetching', 'setFetching', false),
   withZipDownload,
 )(DownloadZipFiles)
diff --git a/packages/component-faraday-ui/src/DownloadZipFiles.md b/packages/component-faraday-ui/src/DownloadZipFiles.md
index 82263d4563040a93ce1a5330497927de6dbd5bb9..05fe5d1b990eff67b4934f763aa4838aaab85467 100644
--- a/packages/component-faraday-ui/src/DownloadZipFiles.md
+++ b/packages/component-faraday-ui/src/DownloadZipFiles.md
@@ -4,10 +4,13 @@ Download manuscript package as zip
 const collection = {id: '', customId: ''};
 const fragment = {id: ''};
 
+
 <DownloadZipFiles
   archiveName={`ID-${collection.customId}`}
   collectionId={collection.id}
   fragmentId={fragment.id}
+  isReviewer
+  token="abc-123"
 >
   <div>Download</div>
 </DownloadZipFiles>
diff --git a/packages/component-faraday-ui/src/ManuscriptVersion.js b/packages/component-faraday-ui/src/ManuscriptVersion.js
index f5d8d5493279292c9dc0b0565f3586d233e820d1..33de748b0e212aa6acd947fafa34550f3f9ba593 100644
--- a/packages/component-faraday-ui/src/ManuscriptVersion.js
+++ b/packages/component-faraday-ui/src/ManuscriptVersion.js
@@ -1,7 +1,6 @@
 import React from 'react'
 import { get } from 'lodash'
 import { Menu } from '@pubsweet/ui'
-import { withRouter } from 'react-router-dom'
 import { compose, withHandlers, withProps } from 'recompose'
 
 const ManuscriptVersion = ({
@@ -23,7 +22,6 @@ const ManuscriptVersion = ({
   )
 
 export default compose(
-  withRouter,
   withProps(({ collection = {} }) => ({
     fragments: get(collection, 'fragments', []),
   })),
diff --git a/packages/component-faraday-ui/src/ManuscriptVersion.md b/packages/component-faraday-ui/src/ManuscriptVersion.md
index d740afec5d1308b0bdb3482d46a8dd7e4f7880ad..00e12ce334886136eb8308dd2c6b5fdc7a018e68 100644
--- a/packages/component-faraday-ui/src/ManuscriptVersion.md
+++ b/packages/component-faraday-ui/src/ManuscriptVersion.md
@@ -3,11 +3,17 @@ Manuscript version component
 ```js
 
 const history = {
-  push: () => alert('go to version')
+  push: v => console.log('go to version -> ', v)
 };
 
 const fragment={};
-const collection={};
+const collection={
+  fragments: ['1','2'],
+};
 
-<ManuscriptVersion collection={collection} fragment={fragment} />
+<ManuscriptVersion
+  collection={collection}
+  history={history}
+  fragment={fragment}
+  />
 ```
diff --git a/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptDetailsTop.js b/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptDetailsTop.js
index 5ffa60c3dbc7dc64255862afefaab56ab1227258..ba3190e450b131c1e7a15d397502a421d2812891 100644
--- a/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptDetailsTop.js
+++ b/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptDetailsTop.js
@@ -1,15 +1,7 @@
 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,
@@ -17,20 +9,21 @@ import {
   Text,
   ActionLink,
   IconButton,
-  DownloadZipFiles,
   PreviewFile,
+  DownloadZipFiles,
   ManuscriptVersion,
 } from 'pubsweet-component-faraday-ui'
 
 const ManuscriptDetailsTop = ({
   history,
-  getSignedUrl,
-  collection = {},
-  fragment = {},
   goToEdit,
+  getSignedUrl,
   canEditManuscript,
   goToTechnicalCheck,
   canOverrideTechChecks,
+  fragment = {},
+  collection = {},
+  currentUser: { isReviewer, token },
 }) => (
   <Row alignItems="center" mb={1}>
     <Item alignItems="center" justify="flex-start">
@@ -69,25 +62,24 @@ const ManuscriptDetailsTop = ({
         archiveName={`ID-${collection.customId}`}
         collectionId={collection.id}
         fragmentId={fragment.id}
+        isReviewer={isReviewer}
+        token={token}
       >
         <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} />
+      <ManuscriptVersion
+        collection={collection}
+        fragment={fragment}
+        history={history}
+      />
     </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(
diff --git a/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptDetailsTop.md b/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptDetailsTop.md
index f4a1a46f7c94ed7eaec8a46e95e7af124af4860c..83b26fc585d2bd7fa43dc8a2e546e57bf3bda120 100644
--- a/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptDetailsTop.md
+++ b/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptDetailsTop.md
@@ -6,10 +6,17 @@ const history = {
 };
 const fragment={};
 const collection={};
+const currentUser = {
+  isReviewer: true,
+  token: 'abc-123',
+};
 
 <ManuscriptDetailsTop
   collection={collection}
+  currentUser={currentUser}
   fragment={fragment}
   history={history}
+  canOverrideTechChecks
+  canEditManuscript
 />
 ```
diff --git a/packages/component-manuscript/src/components/ManuscriptLayout.js b/packages/component-manuscript/src/components/ManuscriptLayout.js
index 02f391c2d6fffc547f50901a81aed7d9bce58aa5..037e692e0e83631cdc689f4f96dc583f61e9cf83 100644
--- a/packages/component-manuscript/src/components/ManuscriptLayout.js
+++ b/packages/component-manuscript/src/components/ManuscriptLayout.js
@@ -13,25 +13,28 @@ const ManuscriptLayout = ({
   currentUser,
   editorInChief,
   canMakeRevision,
-  editorialRecommendations,
   hasResponseToReviewers,
+  editorialRecommendations,
   journal = {},
-  project = {},
-  version = {},
+  collection = {},
+  fragment = {},
+  permissions,
 }) => (
   <Root>
-    {!isEmpty(project) && !isEmpty(version) ? (
+    {!isEmpty(collection) && !isEmpty(fragment) ? (
       <Fragment>
         <ManuscriptDetailsTop
-          collection={project}
-          fragment={version}
+          collection={collection}
+          currentUser={currentUser}
+          fragment={fragment}
           getSignedUrl={getSignedUrl}
           history={history}
+          {...permissions}
         />
         <ManuscriptHeader
-          collection={project}
+          collection={collection}
           editorInChief={editorInChief}
-          fragment={version}
+          fragment={fragment}
           journal={journal}
         />
       </Fragment>
diff --git a/packages/component-manuscript/src/components/ManuscriptPage.js b/packages/component-manuscript/src/components/ManuscriptPage.js
index b09fe2d5c3a1b7491b7ad99e394f68cb0116f7af..88f14ae12f0b56c6cf00ef861628351e56b5f41e 100644
--- a/packages/component-manuscript/src/components/ManuscriptPage.js
+++ b/packages/component-manuscript/src/components/ManuscriptPage.js
@@ -30,7 +30,15 @@ import {
   getHandlingEditors,
   selectHandlingEditors,
 } from 'pubsweet-components-faraday/src/redux/editors'
-import { canMakeRevision } from 'pubsweet-component-faraday-selectors/src'
+import {
+  getUserToken,
+  canMakeRevision,
+  canMakeDecision,
+  canEditManuscript,
+  canMakeRecommendation,
+  currentUserIsReviewer,
+  canOverrideTechnicalChecks,
+} from 'pubsweet-component-faraday-selectors'
 
 import ManuscriptLayout from './ManuscriptLayout'
 import { parseSearchParams, redirectToError } from './utils'
@@ -49,8 +57,8 @@ export default compose(
       currentUser: selectCurrentUser(state),
       handlingEditors: selectHandlingEditors(state),
       hasManuscriptFailure: hasManuscriptFailure(state),
-      version: selectFragment(state, match.params.version),
-      project: selectCollection(state, match.params.project),
+      fragment: selectFragment(state, match.params.version),
+      collection: selectCollection(state, match.params.project),
       editorialRecommendations: selectEditorialRecommendations(
         state,
         match.params.version,
@@ -66,11 +74,22 @@ export default compose(
       updateVersion: actions.updateFragment,
     },
   ),
-  connect((state, { project, version }) => ({
-    canMakeRevision: canMakeRevision(state, project, version),
+  connect((state, { currentUser, collection, fragment }) => ({
+    currentUser: {
+      ...currentUser,
+      token: getUserToken(state),
+      isReviewer: currentUserIsReviewer(state),
+    },
+    canMakeRevision: canMakeRevision(state, collection, fragment),
+    permissions: {
+      canMakeDecision: canMakeDecision(state, collection, fragment),
+      canEditManuscript: canEditManuscript(state, collection, fragment),
+      canOverrideTechChecks: canOverrideTechnicalChecks(state, collection),
+      canMakeRecommendation: canMakeRecommendation(state, collection, fragment),
+    },
   })),
-  ConnectPage(({ currentUser, handlingEditors, project }) => {
-    const he = get(project, 'handlingEditor')
+  ConnectPage(({ currentUser, handlingEditors, collection }) => {
+    const he = get(collection, 'handlingEditor')
     if (
       !he &&
       !handlingEditors.length &&
@@ -81,9 +100,9 @@ export default compose(
     return []
   }),
   withHandlers({
-    updateManuscript: ({ updateVersion, project, version }) => data =>
-      updateVersion(project, {
-        id: version.id,
+    updateManuscript: ({ updateVersion, collection, fragment }) => data =>
+      updateVersion(collection, {
+        id: fragment.id,
         ...data,
       }),
     setEditorInChief: ({ setEiC }) => eic => {
@@ -130,9 +149,9 @@ export default compose(
       )
     },
   }),
-  withProps(({ version }) => ({
+  withProps(({ fragment }) => ({
     hasResponseToReviewers:
-      !isEmpty(get(version, 'files.responseToReviewers')) ||
-      get(version, 'commentsToReviewers'),
+      !isEmpty(get(fragment, 'files.responseToReviewers')) ||
+      get(fragment, 'commentsToReviewers'),
   })),
 )(ManuscriptLayout)
diff --git a/packages/styleguide/src/Wrapper.js b/packages/styleguide/src/Wrapper.js
index 467e2f5c80cdf9509efa625e430e043a56658957..b7641fe72a28e8c036b9fedafa11bf4160950165 100644
--- a/packages/styleguide/src/Wrapper.js
+++ b/packages/styleguide/src/Wrapper.js
@@ -6,6 +6,7 @@ import hindawiTheme from 'hindawi-theme'
 import { createLogger } from 'redux-logger'
 import { ThemeProvider } from 'styled-components'
 import { client } from 'pubsweet-component-modal'
+import { BrowserRouter as Router } from 'react-router-dom'
 import { createStore, combineReducers, applyMiddleware } from 'redux'
 
 import withDragDropContext from './withDragDropContext'
@@ -23,9 +24,11 @@ class Wrapper extends Component {
   render() {
     return (
       <Provider store={store}>
-        <ThemeProvider theme={hindawiTheme}>
-          {this.props.children}
-        </ThemeProvider>
+        <Router>
+          <ThemeProvider theme={hindawiTheme}>
+            {this.props.children}
+          </ThemeProvider>
+        </Router>
       </Provider>
     )
   }