diff --git a/.dev-env b/.dev-env
new file mode 100644
index 0000000000000000000000000000000000000000..4704c2d065fb35d932b5e7d00d9d42ffcd40a6f1
--- /dev/null
+++ b/.dev-env
@@ -0,0 +1 @@
+API_BASE_URL="http://apply.localhost:8000"
diff --git a/opentech/static_src/src/app/src/components/Listing/index.js b/opentech/static_src/src/app/src/components/Listing/index.js
index 421625e1ff06dd9b4b6965c3ca5e123613eabbaf..3bedffe6c676a26413d761b63e957b4dcf895b36 100644
--- a/opentech/static_src/src/app/src/components/Listing/index.js
+++ b/opentech/static_src/src/app/src/components/Listing/index.js
@@ -12,19 +12,25 @@ export default class Listing extends React.Component {
         const { isLoading, isError, items } = this.props;
 
         if (isLoading) {
-            return <ListingItem title={"Loading..."} />;
+            return <p>Loading...</p>;
         } else if (isError) {
-            return <ListingItem title={"Something went wrong. Please try again later."} />;
+            return <p>Something went wrong. Please try again later.</p>;
         } else if (items.length === 0) {
-            return <ListingItem title={"No results found."} />;
+            return <p>No results found.</p>;
         }
 
-        return this.getOrderedItems().filter(v => v.items.length !== 0).map(v =>
-            <ListingGroup key={`listing-group-${v.group}`} item={v.group}>
-                {v.items.map(item =>
-                    <ListingItem key={`listing-item-${item.id}`} title={item.title}/>
-                )}
-            </ListingGroup>
+        return (
+            <ul className="listing__list">
+                {this.getOrderedItems().filter(v => v.items.length !== 0).map(v => {
+                    return (
+                        <ListingGroup key={`listing-group-${v.group}`} item={v}>
+                            {v.items.map(item => {
+                                return <ListingItem key={`listing-item-${item.id}`} item={item}/>;
+                            })}
+                        </ListingGroup>
+                    );
+                })}
+            </ul>
         );
     }
 
@@ -65,9 +71,7 @@ export default class Listing extends React.Component {
                     </select>
                 </form>
                 </div>
-                <ul className="listing__list">
-                    {this.renderListItems()}
-                </ul>
+                {this.renderListItems()}
             </div>
         );
     }
diff --git a/opentech/static_src/src/app/src/components/ListingGroup.js b/opentech/static_src/src/app/src/components/ListingGroup.js
index 0e072445dec48ba312543b18909c5c1f8990ae12..72c97d53b4f24946f99b0bf83752c3ebb3ca99a1 100644
--- a/opentech/static_src/src/app/src/components/ListingGroup.js
+++ b/opentech/static_src/src/app/src/components/ListingGroup.js
@@ -7,7 +7,7 @@ export default class ListingGroup extends React.Component {
     render() {
         return (
             <>
-                <ListingHeading title={this.props.item} count={this.props.children.length} />
+                <ListingHeading title={this.props.item.group} count={this.props.children.length} />
                 <ul>
                     {this.props.children}
                 </ul>
@@ -17,5 +17,7 @@ export default class ListingGroup extends React.Component {
 }
 
 ListingGroup.propTypes = {
-    item: PropTypes.object,
+    item: PropTypes.shape({
+        group: PropTypes.string,
+    }),
 };
diff --git a/opentech/static_src/src/app/src/components/ListingItem.js b/opentech/static_src/src/app/src/components/ListingItem.js
index 3e6e1326c8d7921f4a3ef7caabd0603a4158bcec..1207c65e8a44b087b97d2c3ed2baf437e05579e5 100644
--- a/opentech/static_src/src/app/src/components/ListingItem.js
+++ b/opentech/static_src/src/app/src/components/ListingItem.js
@@ -6,12 +6,14 @@ export default class ListingItem extends React.Component {
     render() {
         return (
             <li className="listing__item">
-                <a className="listing__link">{this.props.title}</a>
+                <a className="listing__link">{this.props.item.title}</a>
             </li>
         );
     }
 }
 
 ListingItem.propTypes = {
-    title: PropTypes.string,
+    item: PropTypes.shape({
+        title: PropTypes.string,
+    }),
 };
diff --git a/opentech/static_src/src/app/src/containers/ByStatusListing.js b/opentech/static_src/src/app/src/containers/ByStatusListing.js
index c5fd7a7a2b8cdeeae6b464624926db193d7d2879..aaeb99202707af65dc5056500d1e609e7ba4d246 100644
--- a/opentech/static_src/src/app/src/containers/ByStatusListing.js
+++ b/opentech/static_src/src/app/src/containers/ByStatusListing.js
@@ -4,7 +4,7 @@ import { connect } from 'react-redux'
 
 import Listing from '@components/Listing';
 import {
-    getCurrentRound,
+    getCurrentRoundID,
     getCurrentRoundSubmissions,
     getSubmissionsByRoundErrorState,
     getSubmissionsByRoundLoadingState,
@@ -37,6 +37,8 @@ class ByStatusListing extends React.Component {
                     items={this.props.items}
                     groupBy={'status'}
                     order={[
+                        // TODO: Set the proper order of statuses.
+                        'post_external_review_discussion',
                         'in_discussion',
                         'more_info',
                         'internal_review',
@@ -51,7 +53,7 @@ class ByStatusListing extends React.Component {
 
 const mapStateToProps = state => ({
     items: getCurrentRoundSubmissions(state),
-    roundId: getCurrentRound(state),
+    roundId: getCurrentRoundID(state),
     isError: getSubmissionsByRoundErrorState(state),
     isLoading: getSubmissionsByRoundLoadingState(state),
 });
diff --git a/opentech/static_src/src/app/src/redux/reducers/submissions.js b/opentech/static_src/src/app/src/redux/reducers/submissions.js
index c866758b7cc22367feda14c92ab092d3b2e8689a..4970ddeb302aeb18a240de7462bdedbf54c13da7 100644
--- a/opentech/static_src/src/app/src/redux/reducers/submissions.js
+++ b/opentech/static_src/src/app/src/redux/reducers/submissions.js
@@ -7,10 +7,10 @@ import {
 
 const initialState = {
     currentRound: null,
-    items: {},
-    itemsByRound: {},
-    itemsByRoundLoadingError: false,
-    itemsByRoundLoading: false,
+    submissionsByID: {},
+    submissionsByRoundID: {},
+    itemsLoadingError: false,
+    itemsLoading: false,
 };
 
 export default function submissions(state = initialState, action) {
@@ -23,31 +23,34 @@ export default function submissions(state = initialState, action) {
         case UPDATE_SUBMISSIONS_BY_ROUND:
             return {
                 ...state,
-                items: {
-                    ...state.items,
+                submissionsByID: {
+                    ...state.submissionsByID,
                     ...action.data.results.reduce((newItems, v) => {
-                        newItems[v.id] = { ...v };
+                        newItems[v.id] = {
+                            ...state.submissionsByID[v.id],
+                            ...v
+                        };
                         return newItems;
                     }, {}),
                 },
-                itemsByRound: {
-                    ...state.itemsByRound,
+                submissionsByRoundID: {
+                    ...state.submissionsByRoundID,
                     [action.roundId]: action.data.results.map(v => v.id),
                 },
-                itemsByRoundLoading: false,
-                itemsByRoundLoadingError: false,
+                itemsLoading: false,
+                itemsLoadingError: false,
             };
         case FAIL_LOADING_SUBMISSIONS_BY_ROUND:
             return {
                 ...state,
-                itemsByRoundLoading: false,
-                itemsByRoundLoadingError: true,
+                itemsLoading: false,
+                itemsLoadingError: true,
             };
         case START_LOADING_SUBMISSIONS_BY_ROUND:
             return {
                 ...state,
-                itemsByRoundLoading: true,
-                itemsByRoundLoadingError: false,
+                itemsLoading: true,
+                itemsLoadingError: false,
             };
         default:
             return state;
diff --git a/opentech/static_src/src/app/src/redux/selectors/submissions.js b/opentech/static_src/src/app/src/redux/selectors/submissions.js
index 6b29a2fb916cc0130465481adbcff507f0eae140..4121e9f91c77bda926532e527d1a946d55568b3e 100644
--- a/opentech/static_src/src/app/src/redux/selectors/submissions.js
+++ b/opentech/static_src/src/app/src/redux/selectors/submissions.js
@@ -1,25 +1,25 @@
 import { createSelector } from 'reselect';
 
-const getSubmissions = state => state.submissions.items;
+const getSubmissions = state => state.submissions.submissionsByID;
 
-const getSubmissionIDsByRound = state => state.submissions.itemsByRound;
+const getSubmissionIDsByRound = state => state.submissions.submissionsByRoundID;
 
-const getCurrentRound = state => state.submissions.currentRound;
+const getCurrentRoundID = state => state.submissions.currentRound;
 
 
 const getCurrentRoundSubmissions = createSelector(
-    [ getSubmissionIDsByRound, getCurrentRound , getSubmissions],
-    (submissionsByRound, currentRound, submissions) => {
-        return (submissionsByRound[currentRound] || []).map(v => submissions[v])
+    [ getSubmissionIDsByRound, getCurrentRoundID , getSubmissions],
+    (submissionsByRound, currentRoundID, submissions) => {
+        return (submissionsByRound[currentRoundID] || []).map(roundID => submissions[roundID]);
     }
 );
 
-const getSubmissionsByRoundErrorState = state => state.submissions.itemsByRoundLoadingError;
+const getSubmissionsByRoundErrorState = state => state.submissions.itemsLoadingError;
 
-const getSubmissionsByRoundLoadingState = state => state.submissions.itemsByRoundLoading;
+const getSubmissionsByRoundLoadingState = state => state.submissions.itemsLoading;
 
 export {
-    getCurrentRound,
+    getCurrentRoundID,
     getCurrentRoundSubmissions,
     getSubmissionsByRoundErrorState,
     getSubmissionsByRoundLoadingState,