diff --git a/app/components/AdminPage.js b/app/components/AdminPage.js
index cd3548780ecf395f8c82169cda14a8496f95a1bc..584ddc653e7956a5d000c5db4d9ab7d8ca48d137 100644
--- a/app/components/AdminPage.js
+++ b/app/components/AdminPage.js
@@ -138,7 +138,7 @@ const AdminPage = () => {
       : null
   }
 
-  if (currentUser) {
+  if (currentUser && process.env.INSTANCE_NAME === 'coko') {
     links.push({ link: homeLink, name: 'Dashboard', icon: 'home' })
   }
 
@@ -234,6 +234,14 @@ const AdminPage = () => {
           path={`${urlFrag}/admin/manuscripts`}
           redirectLink={redirectLink}
         />
+        {process.env.INSTANCE_NAME === 'elife' &&
+          <PrivateRoute
+            component={SubmitPage}
+            exact
+            path={`${urlFrag}/versions/:version/evaluation`}
+            redirectLink={redirectLink}
+          />
+        }
       </Switch>
       <RolesUpdater />
     </Root>
diff --git a/app/components/component-manuscripts/src/Manuscript.js b/app/components/component-manuscripts/src/Manuscript.js
index 32fc549d6330340701bb1612fc1c084a61debc29..dffb694d9db14ac0153cded0d76dc870616dfa12 100644
--- a/app/components/component-manuscripts/src/Manuscript.js
+++ b/app/components/component-manuscripts/src/Manuscript.js
@@ -20,6 +20,7 @@ import {
 } from './style'
 
 import { convertTimestampToDate } from '../../../shared/time-formatting'
+import { articleStatuses } from '../../../globals'
 
 const DELETE_MANUSCRIPT = gql`
   mutation($id: ID!) {
@@ -64,9 +65,16 @@ const User = ({ manuscriptId, manuscript, submitter }) => {
         )}
       </Cell>
       <LastCell>
-        <Action to={`${urlFrag}/versions/${manuscriptId}/decision`}>
-          Control
-        </Action>
+        {process.env.INSTANCE_NAME === 'elife' && [articleStatuses.submitted, articleStatuses.evaluated].includes(manuscript.status) &&
+          <Action to={`${urlFrag}/versions/${manuscriptId}/evaluation`}>
+            Evaluation
+          </Action>
+        }
+        {process.env.INSTANCE_NAME === 'coko' && 
+          <Action to={`${urlFrag}/versions/${manuscriptId}/decision`}>
+            Control
+          </Action>
+        }
         <Action to={`${urlFrag}/versions/${manuscriptId}/manuscript`}>
           View
         </Action>
diff --git a/app/components/component-submit/src/components/FormTemplate.js b/app/components/component-submit/src/components/FormTemplate.js
index f98350c1e28ba16f20c09a8d84be087e19564d0e..9df5e003ebf360420958d161bf10396985207674 100644
--- a/app/components/component-submit/src/components/FormTemplate.js
+++ b/app/components/component-submit/src/components/FormTemplate.js
@@ -18,6 +18,7 @@ import AuthorsInput from './AuthorsInput'
 import LinksInput from './LinksInput'
 import ValidatedFieldFormik from './ValidatedField'
 import Confirm from './Confirm'
+import { articleStatuses } from '../../../../globals'
 
 const Intro = styled.div`
   font-style: italic;
@@ -148,6 +149,7 @@ const FormTemplate = ({
   submitSubmission,
   errors,
   validateForm,
+  match,
 }) => {
   const submitButton = text => (
     <div>
@@ -157,7 +159,7 @@ const FormTemplate = ({
 
           // If there are errors, do a fake submit
           // to focus on the error
-          if (hasErrors) {
+          if (hasErrors || values.status === articleStatuses.evaluated || values.status === articleStatuses.submitted) {
             handleSubmit()
           } else {
             toggleConfirming()
@@ -272,16 +274,35 @@ const FormTemplate = ({
           </Section>
         ) : null}
 
-        {!['submitted', 'revise'].includes(values.status) &&
-          form.haspopup === 'false' && (
-            <Button onClick={() => handleSubmit()} primary type="submit">
-              Submit your research object
-            </Button>
-          )}
+        {process.env.INSTANCE_NAME === 'coko' &&
+          <>
+            {!['submitted', 'revise'].includes(values.status) &&
+              form.haspopup === 'false' && (
+                <Button onClick={() => handleSubmit()} primary type="submit">
+                  Submit your research object
+                </Button>
+              )}
+
+            {!['submitted', 'revise'].includes(values.status) &&
+              form.haspopup === 'true' &&
+              submitButton('Submit your research object')}
+          </>
+        }
+
+        {process.env.INSTANCE_NAME === 'elife' &&
+          <>
+            {!['revise'].includes(values.status) &&
+              form.haspopup === 'false' && (
+                <Button onClick={() => handleSubmit()} primary type="submit">
+                  Submit your research object
+                </Button>
+              )}
 
-        {!['submitted', 'revise'].includes(values.status) &&
-          form.haspopup === 'true' &&
-          submitButton('Submit your research object')}
+            {!['revise'].includes(values.status) &&
+              form.haspopup === 'true' &&
+              submitButton(match.url.includes('/evaluation') ? 'Submit Evaluation' : 'Submit your research object')}
+          </>
+        }
 
         {values.status === 'revise' && submitButton('Submit your revision')}
 
diff --git a/app/components/component-submit/src/components/Submit.js b/app/components/component-submit/src/components/Submit.js
index c34bd75a76e90b9bd1874c4cb03613f348ef4e1a..9b435b6ef0ab4e16c8709d880f41b44be504f5e4 100644
--- a/app/components/component-submit/src/components/Submit.js
+++ b/app/components/component-submit/src/components/Submit.js
@@ -62,6 +62,7 @@ const Submit = ({
   parent,
   onChange,
   onSubmit,
+  match,
 }) => {
   const decisionSections = []
 
@@ -82,7 +83,7 @@ const Submit = ({
     const editorSection = addEditor(manuscript, 'Manuscript text')
     let decisionSection
 
-    if (['new', 'revising'].includes(manuscript.status)) {
+    if (['new', 'revising', 'submitted', 'evaluated'].includes(manuscript.status)) {
       Object.assign(submissionValues, JSON.parse(manuscript.submission))
 
       const versionValues = {
@@ -118,6 +119,7 @@ const Submit = ({
                   {...formProps}
                   form={form}
                   manuscript={manuscript}
+                  match={match}
                 />
               )}
             </Formik>
diff --git a/app/components/component-submit/src/components/SubmitPage.js b/app/components/component-submit/src/components/SubmitPage.js
index f70beb89d3787c284fd46c64f1da839da220ccb9..92770a7452d9185392db212eeee188995ce113af 100644
--- a/app/components/component-submit/src/components/SubmitPage.js
+++ b/app/components/component-submit/src/components/SubmitPage.js
@@ -217,7 +217,7 @@ const SubmitPage = ({ match, history }) => {
   }
 
   const onSubmit = async versionId => {
-    const delta = { status: 'submitted' }
+    const delta = { status: match.url.includes('/evaluation') ? 'evaluated' : 'submitted' }
 
     await submit({
       variables: {
@@ -247,6 +247,7 @@ const SubmitPage = ({ match, history }) => {
       parent={manuscript}
       toggleConfirming={toggleConfirming}
       versions={versions}
+      match={match}
     />
   )
 }
diff --git a/app/components/shared/Badge.js b/app/components/shared/Badge.js
index dfbaca6b82c3bfd655f04c9134dd5ec7ec79c19c..eff96a77087c6226141576774a36a2a03e1e10e5 100644
--- a/app/components/shared/Badge.js
+++ b/app/components/shared/Badge.js
@@ -63,6 +63,7 @@ const label = (status, published) => {
     revising: 'Revising',
     invited: 'Invited', // reviewer status
     completed: 'Completed', // reviewer status
+    evaluated: 'evaluated',
   }
 
   if (isPublished) {
diff --git a/app/globals.js b/app/globals.js
index 27fc9489ae164c585d255838dffbf1e2c5e390c1..d0830dff44ce0984eb36de581fb12e38d7489227 100644
--- a/app/globals.js
+++ b/app/globals.js
@@ -83,3 +83,9 @@ export const HorizontalRule = styled(FlexRow)`
     margin: 0 16px;
   }
 `
+
+export const articleStatuses = {
+  submitted: 'submitted',
+  evaluated: 'evaluated',
+  new: 'new'
+}