diff --git a/packages/component-wizard/src/components/AuthorList.js b/packages/component-wizard/src/components/AuthorList.js
index 3c557a2a4b52aa57bc9fcd6874c82ac1345e00f3..d29102c1f19b54617938ad5a69418c1eb6606539 100644
--- a/packages/component-wizard/src/components/AuthorList.js
+++ b/packages/component-wizard/src/components/AuthorList.js
@@ -2,7 +2,7 @@ import React from 'react'
 import PropTypes from 'prop-types'
 import classnames from 'classnames'
 import { connect } from 'react-redux'
-import { get, debounce } from 'lodash'
+import { get } from 'lodash'
 import { reduxForm } from 'redux-form'
 import { actions } from 'pubsweet-client'
 import { required } from 'xpub-validators'
@@ -18,7 +18,12 @@ import {
 } from 'recompose'
 import { TextField, Menu, Icon, ValidatedField, Button } from '@pubsweet/ui'
 
-import { addAuthor, getFragmentAuthors, setAuthors } from '../redux/authors'
+import {
+  addAuthor,
+  getFragmentAuthors,
+  setAuthors,
+  moveAuthors,
+} from '../redux/authors'
 
 import classes from './AuthorList.local.scss'
 import SortableList from './SortableList'
@@ -270,6 +275,7 @@ export default compose(
     {
       addAuthor,
       setAuthors,
+      moveAuthors,
       updateFragment: actions.updateFragment,
     },
   ),
@@ -285,13 +291,15 @@ export default compose(
       e && e.preventDefault()
       setEditMode(v => mode)
     },
-    dropItem: ({ updateFragment, authors, project, version }) =>
-      debounce(() => {
-        updateFragment(project, {
-          ...version,
-          authors,
-        })
-      }, 500),
+    dropItem: ({
+      updateFragment,
+      authors,
+      project,
+      version,
+      setAuthors,
+    }) => () => {
+      setAuthors(authors, version.id)
+    },
     countryParser: () => countryCode =>
       countries.find(c => c.value === countryCode).label,
     parseAuthorType: () => (isSubmitting, isCorresponding) => {
@@ -301,14 +309,14 @@ export default compose(
     },
     moveAuthor: ({
       authors,
-      setAuthors,
+      moveAuthors,
       project,
       version,
       updateFragment,
       match: { params },
     }) => (dragIndex, hoverIndex) => {
       const newAuthors = SortableList.moveItem(authors, dragIndex, hoverIndex)
-      setAuthors(newAuthors, params.version)
+      moveAuthors(newAuthors, params.version)
     },
     removeAuthor: ({
       authors,
@@ -318,10 +326,7 @@ export default compose(
       setAuthors,
     }) => authorEmail => () => {
       const newAuthors = authors.filter(a => a.email !== authorEmail)
-      updateFragment(project, {
-        ...version,
-        authors: newAuthors,
-      }).then(() => setAuthors(newAuthors, version.id))
+      setAuthors(newAuthors, version.id)
     },
     setAsCorresponding: ({
       authors,
@@ -334,10 +339,7 @@ export default compose(
         ...a,
         isCorresponding: a.isSubmitting || a.email === authorEmail,
       }))
-      updateFragment(project, {
-        ...version,
-        authors: newAuthors,
-      }).then(() => setAuthors(newAuthors, version.id))
+      setAuthors(newAuthors, version.id)
     },
   }),
 )(Authors)
diff --git a/packages/component-wizard/src/components/Progress.local.scss b/packages/component-wizard/src/components/Progress.local.scss
index 3ac86ec244c9d2842e93f3b85ccf3ce48f28e8e7..8d2f115d95660c1d8b312e97a0f3cf470ece60da 100644
--- a/packages/component-wizard/src/components/Progress.local.scss
+++ b/packages/component-wizard/src/components/Progress.local.scss
@@ -4,7 +4,7 @@
   flex-direction: row;
   justify-content: space-between;
   margin: 0 40px 70px 40px;
-  min-width: 400px;
+  min-width: 500px;
 }
 
 .separator {
diff --git a/packages/component-wizard/src/components/WizardStep.js b/packages/component-wizard/src/components/WizardStep.js
index 9e30dbc9cb28919f0ea5b56951471cbc62be0a0d..d662d52e7a4fbb72ddfa141b3a389daa352ded04 100644
--- a/packages/component-wizard/src/components/WizardStep.js
+++ b/packages/component-wizard/src/components/WizardStep.js
@@ -24,10 +24,12 @@ export default ({
   <div className={classnames(classes.step)}>
     <form className={classnames(classes.form)} onSubmit={handleSubmit}>
       <h3 className={classnames(classes.title)}>{title}</h3>
-      <p
-        className={classnames(classes.subtitle)}
-        dangerouslySetInnerHTML={{ __html: subtitle }} // eslint-disable-line
-      />
+      {subtitle && (
+        <div
+          className={classnames(classes.subtitle)}
+          dangerouslySetInnerHTML={{ __html: subtitle }} // eslint-disable-line
+        />
+      )}
       {stepChildren &&
         stepChildren.map(
           ({
diff --git a/packages/component-wizard/src/index.js b/packages/component-wizard/src/index.js
index abfc03ce45939f61cd39ff3ba9ec9ca37011bb01..cb79e54391e79c2f4dbba4a5cf6710d9c4f3e79d 100644
--- a/packages/component-wizard/src/index.js
+++ b/packages/component-wizard/src/index.js
@@ -2,7 +2,7 @@ module.exports = {
   client: {
     components: [() => require('./components')],
     reducers: {
-      conversion: () => require('./redux/conversion').default,
+      wizardConversion: () => require('./redux/conversion').default,
       authors: () => require('./redux/authors').default,
     },
   },
diff --git a/packages/component-wizard/src/redux/authors.js b/packages/component-wizard/src/redux/authors.js
index 41d213512b9a2325aeaf5cb911b5a1db80d2179b..18440cfd06b64e78b1a3987f118a3352b17abbe5 100644
--- a/packages/component-wizard/src/redux/authors.js
+++ b/packages/component-wizard/src/redux/authors.js
@@ -18,6 +18,10 @@ export const setAuthors = (authors, fragmentId) => dispatch => {
   dispatch(change('wizard', 'authors', authors))
 }
 
+export const moveAuthors = (authors, fragmentId) => dispatch => {
+  dispatch(_setAuthors(authors, fragmentId))
+}
+
 export const addAuthor = (author, collectionId, fragmentId) => dispatch =>
   api
     .create(`/fragments/${fragmentId}/authors`, author)
diff --git a/packages/xpub-collabra/app/config/journal/submission-wizard.js b/packages/xpub-collabra/app/config/journal/submission-wizard.js
new file mode 100644
index 0000000000000000000000000000000000000000..238c2542680f8a5374d0a16219369dfe7293df3c
--- /dev/null
+++ b/packages/xpub-collabra/app/config/journal/submission-wizard.js
@@ -0,0 +1,328 @@
+import React from 'react'
+import { AbstractEditor, TitleEditor, NoteEditor } from 'xpub-edit'
+import {
+  Menu,
+  CheckboxGroup,
+  RadioGroup,
+  TextField,
+  Supplementary,
+} from '@pubsweet/ui'
+import uploadFileFn from 'xpub-upload'
+import {
+  required,
+  minChars,
+  maxChars,
+  minSize,
+  join,
+  split,
+} from 'xpub-validators'
+
+import articleTypes from './article-types'
+import articleSections from './article-sections'
+import declarations from './declarations'
+
+const minSize1 = minSize(1)
+const minChars20 = minChars(20)
+const minChars100 = minChars(100)
+const maxChars500 = maxChars(500)
+const maxChars5000 = maxChars(5000)
+const joinComma = join(',')
+const splitComma = split(',')
+
+const DeclarationInput = ({ label, ...rest }) => (
+  <div style={{ display: 'flex', justifyContent: 'space-between' }}>
+    <label style={{ display: 'inline-block', marginTop: '15px' }}>
+      {label}
+    </label>{' '}
+    <RadioGroup inline {...rest} />
+  </div>
+)
+const Spacing = () => <div style={{ width: '100%', height: '30px' }} />
+const Label = ({ label }) => (
+  <label
+    style={{ display: 'inline-block', marginTop: '15px', marginBottom: '5px' }}
+  >
+    <b>{label}</b>
+  </label>
+)
+const SubLabel = ({ label }) => (
+  <label
+    style={{ display: 'inline-block', marginTop: '10px', marginBottom: '5px' }}
+  >
+    {label}
+  </label>
+)
+
+const uploadFile = input => uploadFileFn(input)
+
+export default {
+  showProgress: false,
+  submitText: 'Submit your manuscript',
+  backText: 'Back',
+  cancelText: 'Cancel',
+  nextText: 'Next',
+  formSectionKeys: [
+    'metadata',
+    'declarations',
+    'suggestions',
+    'notes',
+    'files',
+  ],
+  dispatchFunctions: [uploadFile],
+  steps: [
+    {
+      label: 'Submission information',
+      title: 'Submission information',
+      subtitle: `We have ingested your manuscript. To access your manuscript in an editor, please view manuscript page.
+        <br/> To complete your submission, please answer the following questions. <br/>
+        The answers will be automatically saved.`,
+      children: [
+        {
+          fieldId: 'metadata.title',
+          renderComponent: TitleEditor,
+          placeholder: 'Title',
+          title: 'Title',
+          validate: [required, minChars20, maxChars500],
+        },
+        {
+          fieldId: 'spacing-0',
+          renderComponent: Spacing,
+        },
+        {
+          fieldId: 'metadata.abstract',
+          renderComponent: AbstractEditor,
+          title: 'Abstract',
+          placeholder: 'Write an abstract',
+          validate: [required, minChars100, maxChars5000],
+        },
+        {
+          fieldId: 'spacing-authors',
+          renderComponent: Spacing,
+        },
+        {
+          fieldId: 'label-authors',
+          renderComponent: Label,
+          label: 'Authors',
+        },
+        {
+          fieldId: 'metadata.authors',
+          renderComponent: TextField,
+          title: 'Authors',
+          placeholder: 'Enter author names...',
+          format: join(),
+          parse: split(),
+          validate: [minSize1],
+        },
+        {
+          fieldId: 'spacing-Keywords',
+          renderComponent: Spacing,
+        },
+        {
+          fieldId: 'label-Keywords',
+          renderComponent: Label,
+          label: 'Keywords',
+        },
+        {
+          fieldId: 'metadata.keywords',
+          renderComponent: TextField,
+          title: 'Authors',
+          placeholder: 'Enter keywords...',
+          format: join(),
+          parse: split(),
+          validate: [minSize1],
+        },
+        {
+          fieldId: 'spacing-article',
+          renderComponent: Spacing,
+        },
+        {
+          fieldId: 'label-article',
+          renderComponent: Label,
+          label: 'Article Type',
+        },
+        {
+          fieldId: 'metadata.articleType',
+          renderComponent: Menu,
+          options: articleTypes,
+          validate: [required],
+        },
+        {
+          fieldId: 'spacing-section',
+          renderComponent: Spacing,
+        },
+        {
+          fieldId: 'metadata.articleSection',
+          renderComponent: CheckboxGroup,
+          label: 'Section',
+          options: articleSections,
+          validate: [required],
+        },
+        {
+          fieldId: 'spacing-decl',
+          renderComponent: Spacing,
+        },
+        {
+          fieldId: `declarations.${declarations.questions[0].id}`,
+          label: declarations.questions[0].legend,
+          renderComponent: DeclarationInput,
+          options: [
+            { value: 'yes', label: 'Yes' },
+            { value: 'no', label: 'No' },
+          ],
+          validate: [required],
+        },
+        {
+          fieldId: `declarations.${declarations.questions[1].id}`,
+          label: declarations.questions[1].legend,
+          renderComponent: DeclarationInput,
+          options: [
+            { value: 'yes', label: 'Yes' },
+            { value: 'no', label: 'No' },
+          ],
+          validate: [required],
+        },
+        {
+          fieldId: `declarations.${declarations.questions[2].id}`,
+          label: declarations.questions[2].legend,
+          renderComponent: DeclarationInput,
+          options: [
+            { value: 'yes', label: 'Yes' },
+            { value: 'no', label: 'No' },
+          ],
+          validate: [required],
+        },
+        {
+          fieldId: `declarations.${declarations.questions[3].id}`,
+          label: declarations.questions[3].legend,
+          renderComponent: DeclarationInput,
+          options: [
+            { value: 'yes', label: 'Yes' },
+            { value: 'no', label: 'No' },
+          ],
+          validate: [required],
+        },
+        {
+          fieldId: `declarations.${declarations.questions[4].id}`,
+          label: declarations.questions[4].legend,
+          renderComponent: DeclarationInput,
+          options: [
+            { value: 'yes', label: 'Yes' },
+            { value: 'no', label: 'No' },
+          ],
+          validate: [required],
+        },
+        {
+          fieldId: `declarations.${declarations.questions[5].id}`,
+          label: declarations.questions[5].legend,
+          renderComponent: DeclarationInput,
+          options: [
+            { value: 'yes', label: 'Yes' },
+            { value: 'no', label: 'No' },
+          ],
+          validate: [required],
+        },
+        {
+          fieldId: 'spacing-rev',
+          renderComponent: Spacing,
+        },
+        {
+          fieldId: 'label-reviewers',
+          renderComponent: Label,
+          label: 'Reviewers',
+        },
+        {
+          fieldId: 'label-rev-suggested',
+          renderComponent: SubLabel,
+          label: 'Suggested reviewers',
+        },
+        {
+          fieldId: 'suggestions.reviewers.suggested',
+          renderComponent: TextField,
+          title: 'Suggested reviewers',
+          placeholder: 'Add reviewers names...',
+          format: joinComma,
+          parse: splitComma,
+        },
+        {
+          fieldId: 'label-rev-Opposed',
+          renderComponent: SubLabel,
+          label: 'Opposed reviewers',
+        },
+        {
+          fieldId: 'suggestions.reviewers.opposed',
+          renderComponent: TextField,
+          title: 'Opposed reviewers',
+          placeholder: 'Add opposed reviewers names...',
+          format: joinComma,
+          parse: splitComma,
+        },
+        {
+          fieldId: 'label-Editors',
+          renderComponent: Label,
+          label: 'Editors',
+        },
+        {
+          fieldId: 'label-editors-suggested',
+          renderComponent: SubLabel,
+          label: 'Suggested Editors',
+        },
+        {
+          fieldId: 'suggestions.editors.suggested',
+          renderComponent: TextField,
+          title: 'Suggested editors',
+          placeholder: 'Add editors names...',
+          format: joinComma,
+          parse: splitComma,
+        },
+        {
+          fieldId: 'label-editors-Opposed',
+          renderComponent: SubLabel,
+          label: 'Opposed Editors',
+        },
+        {
+          fieldId: 'suggestions.editors.opposed',
+          renderComponent: TextField,
+          title: 'Opposed editors',
+          placeholder: 'Add opposed editors names...',
+          format: joinComma,
+          parse: splitComma,
+        },
+        {
+          fieldId: 'spacing-funding',
+          renderComponent: Spacing,
+        },
+        {
+          fieldId: 'notes.fundingAcknowledgement',
+          renderComponent: NoteEditor,
+          title: 'Funding body acknowledgement (required)',
+          placeholder: 'Enter an acknowledgment...',
+          validate: [required],
+        },
+        {
+          fieldId: 'spacing-special',
+          renderComponent: Spacing,
+        },
+        {
+          fieldId: 'notes.specialInstructions',
+          renderComponent: NoteEditor,
+          title: 'Special instructions (confidential)',
+          placeholder: 'Enter instructions for the editor…',
+        },
+        {
+          fieldId: 'spacing-files',
+          renderComponent: Spacing,
+        },
+        {
+          fieldId: 'label-files',
+          renderComponent: Label,
+          label: 'Upload supplementary materials',
+        },
+        {
+          fieldId: 'files.supplementary',
+          label: 'Upload supplementary materials',
+          renderComponent: Supplementary,
+        },
+      ],
+    },
+  ],
+}
diff --git a/packages/xpub-faraday-server/src/AuthorBackend.js b/packages/xpub-faraday-server/src/AuthorBackend.js
index 6f784e4c27a5e533542c647121dd84152c6634b4..e71de40326aa0371cc64ce690a142c77f568e6e1 100644
--- a/packages/xpub-faraday-server/src/AuthorBackend.js
+++ b/packages/xpub-faraday-server/src/AuthorBackend.js
@@ -1,14 +1,9 @@
 const bodyParser = require('body-parser')
 
 const AuthorBackend = app => {
-  let authBearer = app.locals.passport.authenticate('bearer', {
+  const authBearer = app.locals.passport.authenticate('bearer', {
     session: false,
   })
-
-  if (process.env.NODE_ENV === 'test') {
-    authBearer = app.locals.passport.authenticate('anonymous')
-  }
-
   app.post(
     '/api/fragments/:fragmentId/authors',
     authBearer,
diff --git a/packages/xpub-faraday-server/src/AuthorBackend.test.js b/packages/xpub-faraday-server/src/AuthorBackend.test.js
index 4431bbf9a5bc7513ba8e3eb95de7496d5388c04f..e01f686aa5b2a4312afe8c89c83dab86e5883f3f 100644
--- a/packages/xpub-faraday-server/src/AuthorBackend.test.js
+++ b/packages/xpub-faraday-server/src/AuthorBackend.test.js
@@ -7,14 +7,20 @@ const component = require('..')
 const express = require('express')
 const fixtures = require('./fixtures/fixtures')
 const passport = require('passport')
-const AnonymousStrategy = require('passport-anonymous').Strategy
+const BearerStrategy = require('passport-http-bearer').Strategy
 
 function makeApp(response) {
   const app = express()
   app.use(bodyParser.json())
   // Passport strategies
   app.use(passport.initialize())
-  passport.use('anonymous', new AnonymousStrategy())
+  passport.use(
+    'bearer',
+    new BearerStrategy((token, done) =>
+      done(null, fixtures.user, { scope: 'all' }),
+    ),
+  )
+
   app.locals.passport = passport
 
   app.locals.models = {
@@ -39,6 +45,7 @@ describe('Author Backend API', () => {
     error.status = 404
     return makeApp(error)
       .post('/api/fragments/123/authors')
+      .set('Authorization', 'Bearer 123')
       .send(fixtures.author)
       .expect(404, '{"error":"Fragment not found"}')
   })
@@ -51,6 +58,7 @@ describe('Author Backend API', () => {
     error.details.push({ message: 'firstName is required' })
     return makeApp(error)
       .post('/api/fragments/123/authors')
+      .set('Authorization', 'Bearer 123')
       .send(fixtures.invalidAuthor)
       .expect(404, '{"error":"firstName is required"}')
   })
@@ -58,12 +66,22 @@ describe('Author Backend API', () => {
   it('should return an error if an author already exists with the same email', () =>
     makeApp(fixtures.fragment)
       .post('/api/fragments/123-valid-id/authors')
+      .set('Authorization', 'Bearer 123')
       .send(fixtures.author)
       .expect(400, '{"error":"Author with the same email already exists"}'))
 
   it('should return an error if there already is a submitting author', () =>
     makeApp(fixtures.fragment)
       .post('/api/fragments/123-valid-id/authors')
+      .set('Authorization', 'Bearer 123')
       .send(fixtures.newSubmittingAuthor)
       .expect(400, '{"error":"There can only be one sumbitting author"}'))
+
+  it('should return success', () =>
+    makeApp(fixtures.fragment)
+      .post('/api/fragments/123-valid-id/authors')
+      .set('Authorization', 'Bearer 123')
+      .send(fixtures.newAuthor)
+      .expect(200, '')
+      .then(() => expect(fixtures.fragment.save).toHaveBeenCalled()))
 })
diff --git a/packages/xpub-faraday-server/src/fixtures/fixtures.js b/packages/xpub-faraday-server/src/fixtures/fixtures.js
index d265352b1864c086b90baa457fb366fd7bcd5a0c..f570e534a22f13729c04e89d8fcc35846989c8ea 100644
--- a/packages/xpub-faraday-server/src/fixtures/fixtures.js
+++ b/packages/xpub-faraday-server/src/fixtures/fixtures.js
@@ -5,10 +5,21 @@ const author = {
   email: 'email@email.com',
   affiliation: 'University',
   country: '',
-  isCorresponding: true,
+  isCorresponding: false,
   isSubmitting: true,
 }
 
+const newAuthor = {
+  firstName: 'Robert',
+  middleName: '',
+  lastName: 'Smith',
+  email: 'email_robert@email.com',
+  affiliation: 'University',
+  country: '',
+  isCorresponding: true,
+  isSubmitting: false,
+}
+
 const invalidAuthor = {
   firstName: '',
   middleName: '',
@@ -41,9 +52,18 @@ const fragment = {
   save: jest.fn(),
 }
 
+const user = {
+  type: 'user',
+  username: 'testuser',
+  email: 'test@example.com',
+  password: 'test',
+}
+
 module.exports = {
   author,
   invalidAuthor,
   fragment,
   newSubmittingAuthor,
+  newAuthor,
+  user,
 }
diff --git a/packages/xpub-faraday/app/config/Logo.js b/packages/xpub-faraday/app/config/Logo.js
new file mode 100644
index 0000000000000000000000000000000000000000..3f1557e5409e81d88ee5390e59679a898dd290e5
--- /dev/null
+++ b/packages/xpub-faraday/app/config/Logo.js
@@ -0,0 +1,7 @@
+import React from 'react'
+
+const Logo = ({ srcUrl }) => (
+  <img alt="Hindawi" height="36" src={srcUrl} title="Hindawi" />
+)
+
+export default Logo
diff --git a/packages/xpub-faraday/app/config/journal/metadata.js b/packages/xpub-faraday/app/config/journal/metadata.js
index 7d662e97b2b267abc000756cf3b2056e80d1f562..a0dbaa538b1525826b7c0259d497302ef43e9516 100644
--- a/packages/xpub-faraday/app/config/journal/metadata.js
+++ b/packages/xpub-faraday/app/config/journal/metadata.js
@@ -1,5 +1,8 @@
+import React from 'react'
+import Logo from '../Logo'
+
 export default {
   issn: '2474-7394',
-  name: 'Hindawi Faraday',
+  name: <Logo srcUrl="/assets/hindawi-logo.png" />,
   logo: '/assets/hindawi-logo.png',
 }
diff --git a/packages/xpub-faraday/app/config/journal/submit-wizard.js b/packages/xpub-faraday/app/config/journal/submit-wizard.js
index 52adaeb0e650510b4187970a7fa6cbcec277f3be..23eb8239987366c78fb0757376d4b15d4d78cb89 100644
--- a/packages/xpub-faraday/app/config/journal/submit-wizard.js
+++ b/packages/xpub-faraday/app/config/journal/submit-wizard.js
@@ -28,6 +28,14 @@ const yesNoWithLabel = ({ label, ...rest }) => (
     <YesOrNo {...rest} />
   </div>
 )
+const Spacing = () => <div style={{ width: '100%', height: '15px' }} />
+const Label = ({ label }) => (
+  <label
+    style={{ display: 'inline-block', marginTop: '15px', marginBottom: '5px' }}
+  >
+    <b>{label}</b>
+  </label>
+)
 
 const journal = {
   label: 'Hindawi Faraday',
@@ -43,20 +51,28 @@ export default {
   steps: [
     {
       label: 'Journal details',
-      title: 'Journal & Field Selection',
+      title: '1. Journal & Field Selection',
       children: [
+        {
+          fieldId: 'label-Journal',
+          renderComponent: Label,
+          label: 'Journal',
+        },
         {
           fieldId: 'metadata.journal',
           renderComponent: Menu,
-          label: 'Journal',
           options: [journal],
           value: journal.value,
           validate: [required],
         },
+        {
+          fieldId: 'label-Issue',
+          renderComponent: Label,
+          label: 'Issue',
+        },
         {
           fieldId: 'metadata.issue',
           renderComponent: Menu,
-          label: 'Issue',
           options: issueTypes,
           validate: [required],
         },
@@ -64,7 +80,7 @@ export default {
     },
     {
       label: 'Pre-submission checklist',
-      title: 'Pre-submission Checklist',
+      title: '2. Pre-submission Checklist',
       subtitle:
         'Before moving forward make sure you have all the needed details prepared by reviewing and checking off the items on this list.',
       children: [
@@ -78,7 +94,7 @@ export default {
     },
     {
       label: 'Manuscript & Authors Details',
-      title: 'Manuscript & Authors Details',
+      title: '3. Manuscript & Authors Details',
       subtitle:
         'Please provide the details of all the authors of this manuscript....',
       children: [
@@ -88,13 +104,25 @@ export default {
           placeholder: 'Manuscript title',
           title: 'Manuscript title',
         },
+        {
+          fieldId: 'spacing-title',
+          renderComponent: Spacing,
+        },
+        {
+          fieldId: 'label-manuscriptType',
+          renderComponent: Label,
+          label: 'Manuscript Type',
+        },
         {
           fieldId: 'metadata.type',
           renderComponent: Menu,
-          label: 'Manuscript type',
           options: manuscriptTypes,
           validate: [required],
         },
+        {
+          fieldId: 'spacing-type',
+          renderComponent: Spacing,
+        },
         {
           fieldId: 'metadata.abstract',
           renderComponent: AbstractEditor,
@@ -102,11 +130,19 @@ export default {
           placeholder: 'Write an abstract',
           validate: [requiredBasedOnType],
         },
+        {
+          fieldId: 'spacing-abstract',
+          renderComponent: Spacing,
+        },
         {
           fieldId: 'authors',
           renderComponent: AuthorList,
           validate: [required],
         },
+        {
+          fieldId: 'spacing-authors',
+          renderComponent: Spacing,
+        },
         {
           fieldId: 'conflicts.hasConflicts',
           renderComponent: yesNoWithLabel,
@@ -127,18 +163,33 @@ export default {
     },
     {
       label: 'Files upload',
-      title: 'Manuscript Files Upload',
+      title: '4. Manuscript Files Upload',
       children: [
+        {
+          fieldId: 'label-manuscript',
+          renderComponent: Label,
+          label: 'Main Manuscript',
+        },
         {
           fieldId: 'files.manuscripts',
           label: 'Main Manuscript',
           renderComponent: Supplementary,
         },
+        {
+          fieldId: 'label-supplementary',
+          renderComponent: Label,
+          label: 'Supplemental Files',
+        },
         {
           fieldId: 'files.supplementary',
           label: 'Supplemental Files',
           renderComponent: Supplementary,
         },
+        {
+          fieldId: 'label-cover',
+          renderComponent: Label,
+          label: 'Cover Letter',
+        },
         {
           fieldId: 'files.coverLetter',
           label: 'Cover Letter',
diff --git a/packages/xpub-faraday/app/config/journal/wizard-validators.js b/packages/xpub-faraday/app/config/journal/wizard-validators.js
index 4f11c7640ccd08799e6a1b10aef91901552ad6f4..59ea36b4cbba46d62ca7600aac53afe911dc0c24 100644
--- a/packages/xpub-faraday/app/config/journal/wizard-validators.js
+++ b/packages/xpub-faraday/app/config/journal/wizard-validators.js
@@ -6,10 +6,17 @@ const requiredTypes = manuscriptTypes
   .filter(t => t.abstractRequired)
   .map(t => t.value)
 
+const parseAbstract = value => {
+  if (value && value.replace('<p></p>', '').replace('<h1></h1>', '')) {
+    return undefined
+  }
+  return 'Required'
+}
+
 export const requiredBasedOnType = (value, formValues) => {
   if (
     requiredTypes.includes(get(formValues, 'metadata.type')) &&
-    isEmpty(get(formValues, 'metadata.abstract'))
+    (isEmpty(get(formValues, 'metadata.abstract')) || parseAbstract(value))
   ) {
     return 'Required'
   }
diff --git a/packages/xpub-faraday/app/index.html b/packages/xpub-faraday/app/index.html
index 4210e6fed4fc2a8b610b816d684fc47fb77b3421..ea72df9a2e41b3adb3ef07b67a3400e4bdff7e21 100644
--- a/packages/xpub-faraday/app/index.html
+++ b/packages/xpub-faraday/app/index.html
@@ -2,6 +2,7 @@
 <html>
 <head>
   <meta charset="utf-8">
+  <title> Faraday </title>
 </head>
 <body>
   <div id="root"></div>
diff --git a/packages/xpub-faraday/app/routes.js b/packages/xpub-faraday/app/routes.js
index 525a7266e9c5701231d10709272c330c07ef3fed..0faa342e6fd6458e78f2a08d27cc5da1ab52da68 100644
--- a/packages/xpub-faraday/app/routes.js
+++ b/packages/xpub-faraday/app/routes.js
@@ -13,10 +13,7 @@ import {
 } from 'pubsweet-component-xpub-authentication/src/components'
 
 import DashboardPage from 'pubsweet-component-xpub-dashboard/src/components/DashboardPage'
-
-import { WizardPage } from 'pubsweet-component-wizard/src/components'
-
-// import { Wizard } from './component-wizard'
+import WizardPage from 'pubsweet-component-wizard/src/components/WizardPage'
 
 const Routes = () => (
   <App>