diff --git a/i18n/en.ts b/i18n/en.ts
index a8a444622e817696e6335601dec00cfcfdb8bce6..69af2976d9bf106d6dc63e2c76eeddff38bb5f4e 100644
--- a/i18n/en.ts
+++ b/i18n/en.ts
@@ -42,6 +42,8 @@ export const lang_en: LangObj = {
   "Created at": "Created at",
   "Last updated at": "Last updated at",
   "First accessed at": "First accessed at",
+  "Passed normal tests": "Passed normal tests",
+  "Passed normal tests (subsequent editor)": "Passed normal tests (subsequent editor)",
   "Last login at": "Last login at",
   "Information": "Information",
   "Search": "Search",
diff --git a/i18n/i18nRoot.ts b/i18n/i18nRoot.ts
index c7df5b48fd033034582d84c26be69f9da5ca50f5..b2e1d4aa488800439d10fa27593ec2538a2ff218 100644
--- a/i18n/i18nRoot.ts
+++ b/i18n/i18nRoot.ts
@@ -45,6 +45,8 @@ export interface LangObj {
   "Created at": string
   "Last updated at": string
   "First accessed at": string
+  "Passed normal tests": string
+  "Passed normal tests (subsequent editor)": string
   "Last login at": string
   "Information": string
   "Search": string
diff --git a/src/components/sites/allAccessibleExercisesSite/closedExercisesSite/listView.tsx b/src/components/sites/allAccessibleExercisesSite/closedExercisesSite/listView.tsx
index a5ea95456b91001017332e2c1faeb5525fdedf0f..5abfe339531cbc387219d9adfea0cb46238af8c9 100644
--- a/src/components/sites/allAccessibleExercisesSite/closedExercisesSite/listView.tsx
+++ b/src/components/sites/allAccessibleExercisesSite/closedExercisesSite/listView.tsx
@@ -153,26 +153,41 @@ class AllAccessibleExercisesList extends React.Component<Props, any> {
                   }
                 </span>
               </Table.HeaderCell>
-              <Table.HeaderCell
-                sorted={
-                  isCurrentSortingColumnPaginated<ExercisePreviewFromBackend>(this.props.sortByKey, 'firstAccessedAt',
-                    this.props.sortDirection)
-                }
-              >
-                <span className="clickable"
-                      onClick={() => {
-                        this.props.setSortByKey('firstAccessedAt',
-                          rotateSorting<ExercisePreviewFromBackend>(this.props.sortDirection,
-                            this.props.sortByKey,
-                            'firstAccessedAt',
-                          ),
-                          this.props.displayAsViaCode
-                        )
-                      }}
-                >
-                  {
-                    getI18n(this.props.langId,'First accessed at')
-                  }
+              {/*<Table.HeaderCell*/}
+              {/*  sorted={*/}
+              {/*    isCurrentSortingColumnPaginated<ExercisePreviewFromBackend>(this.props.sortByKey, 'firstAccessedAt',*/}
+              {/*      this.props.sortDirection)*/}
+              {/*  }*/}
+              {/*>*/}
+              {/*  <span className="clickable"*/}
+              {/*        onClick={() => {*/}
+              {/*          this.props.setSortByKey('firstAccessedAt',*/}
+              {/*            rotateSorting<ExercisePreviewFromBackend>(this.props.sortDirection,*/}
+              {/*              this.props.sortByKey,*/}
+              {/*              'firstAccessedAt',*/}
+              {/*            ),*/}
+              {/*            this.props.displayAsViaCode*/}
+              {/*          )*/}
+              {/*        }}*/}
+              {/*  >*/}
+              {/*    {*/}
+              {/*      getI18n(this.props.langId,'First accessed at')*/}
+              {/*    }*/}
+              {/*  </span>*/}
+              {/*</Table.HeaderCell>*/}
+              {
+                //don't make this sortable (backend) because getting this data this is costly...
+              }
+              <Table.HeaderCell>
+                <span>
+                  <HelpPopup icon="flag checkered"
+                             defaultText={getI18n(this.props.langId,'Passed normal tests')}/>
+                </span>
+              </Table.HeaderCell>
+              <Table.HeaderCell>
+                <span>
+                  <HelpPopup icon="life ring"
+                             defaultText={getI18n(this.props.langId,'Passed normal tests (subsequent editor)')}/>
                 </span>
               </Table.HeaderCell>
               <Table.HeaderCell>
@@ -250,12 +265,29 @@ class AllAccessibleExercisesList extends React.Component<Props, any> {
                         }
                       </span>
                     </Table.Cell>
+                    {/*<Table.Cell>*/}
+                    {/*  <span>*/}
+                    {/*    {*/}
+                    {/*      displayDateAndTime(exercisePreview.firstAccessedAt, -1)*/}
+                    {/*    }*/}
+                    {/*  </span>*/}
+                    {/*</Table.Cell>*/}
                     <Table.Cell>
-                      <span>
-                        {
-                          displayDateAndTime(exercisePreview.firstAccessedAt, -1)
-                        }
+                      {
+                        exercisePreview.hasUserSolution &&
+                        <span className={exercisePreview.passedNormalTestsCount === exercisePreview.maxNormalTestsCount ? 'ok-colored' : ''}>
+                        {exercisePreview.passedNormalTestsCount} / {exercisePreview.maxNormalTestsCount}
                       </span>
+                      }
+
+                    </Table.Cell>
+                    <Table.Cell>
+                      {
+                        (exercisePreview.hasUserSolution && exercisePreview.subsequentEditorPassedNormalTestsCount !== null) &&
+                        <span className={exercisePreview.subsequentEditorPassedNormalTestsCount === exercisePreview.maxNormalTestsCount ? 'ok-colored' : ''}>
+                          {exercisePreview.subsequentEditorPassedNormalTestsCount} / {exercisePreview.maxNormalTestsCount}
+                        </span>
+                      }
                     </Table.Cell>
                     <Table.Cell>
                       <div>
diff --git a/src/components/sites/allAccessibleExercisesSite/openExercises/listView.tsx b/src/components/sites/allAccessibleExercisesSite/openExercises/listView.tsx
index ab2972ae140736381fe1d20afee4fe09751fbfc0..81eb8640fc040bc36da6297789df37f93feb7e68 100644
--- a/src/components/sites/allAccessibleExercisesSite/openExercises/listView.tsx
+++ b/src/components/sites/allAccessibleExercisesSite/openExercises/listView.tsx
@@ -155,28 +155,46 @@ class AllAccessibleExercisesList extends React.Component<Props, any> {
                   }
                 </span>
               </Table.HeaderCell>
-              <Table.HeaderCell
-                sorted={
-                  isCurrentSortingColumnPaginated<ExercisePreviewFromBackend>(this.props.sortByKey, 'firstAccessedAt',
-                    this.props.sortDirection)
-                }
-              >
-                <span className="clickable"
-                      onClick={() => {
-                        this.props.setSortByKey('firstAccessedAt',
-                          rotateSorting<ExercisePreviewFromBackend>(this.props.sortDirection,
-                            this.props.sortByKey,
-                            'firstAccessedAt',
-                          ),
-                          this.props.displayAsViaCode
-                        )
-                      }}
-                >
-                  {
-                    getI18n(this.props.langId,'First accessed at')
-                  }
+              {/*<Table.HeaderCell*/}
+              {/*  sorted={*/}
+              {/*    isCurrentSortingColumnPaginated<ExercisePreviewFromBackend>(this.props.sortByKey, 'firstAccessedAt',*/}
+              {/*      this.props.sortDirection)*/}
+              {/*  }*/}
+              {/*>*/}
+              {/*  <span className="clickable"*/}
+              {/*        onClick={() => {*/}
+              {/*          this.props.setSortByKey('firstAccessedAt',*/}
+              {/*            rotateSorting<ExercisePreviewFromBackend>(this.props.sortDirection,*/}
+              {/*              this.props.sortByKey,*/}
+              {/*              'firstAccessedAt',*/}
+              {/*            ),*/}
+              {/*            this.props.displayAsViaCode*/}
+              {/*          )*/}
+              {/*        }}*/}
+              {/*  >*/}
+              {/*    {*/}
+              {/*      getI18n(this.props.langId,'First accessed at')*/}
+              {/*    }*/}
+              {/*  </span>*/}
+              {/*</Table.HeaderCell>*/}
+              {
+                //don't make this sortable (backend) because getting this data this is costly...
+              }
+              <Table.HeaderCell>
+                <span>
+                  <HelpPopup icon="flag checkered"
+                             defaultText={getI18n(this.props.langId,'Passed normal tests')}/>
                 </span>
               </Table.HeaderCell>
+              {
+                //consecutive editor is only available after the release finished...
+              }
+              {/*<Table.HeaderCell>*/}
+              {/*  <span>*/}
+              {/*    <HelpPopup icon="life ring"*/}
+              {/*               defaultText={getI18n(this.props.langId,'Passed normal tests (subsequent editor)')}/>*/}
+              {/*  </span>*/}
+              {/*</Table.HeaderCell>*/}
               {
                 this.props.hideShouldNotCountColumn === false &&
                 <Table.HeaderCell>
@@ -264,13 +282,33 @@ class AllAccessibleExercisesList extends React.Component<Props, any> {
                         }
                       </span>
                     </Table.Cell>
+                    {/*<Table.Cell>*/}
+                    {/*  <span>*/}
+                    {/*    {*/}
+                    {/*      displayDateAndTime(exercisePreview.firstAccessedAt, -1)*/}
+                    {/*    }*/}
+                    {/*  </span>*/}
+                    {/*</Table.Cell>*/}
                     <Table.Cell>
-                      <span>
-                        {
-                          displayDateAndTime(exercisePreview.firstAccessedAt, -1)
-                        }
-                      </span>
+                      {
+                        exercisePreview.hasUserSolution &&
+                        <span className={exercisePreview.passedNormalTestsCount === exercisePreview.maxNormalTestsCount ? 'ok-colored' : ''}>
+                          {exercisePreview.passedNormalTestsCount} / {exercisePreview.maxNormalTestsCount}
+                        </span>
+                      }
+
                     </Table.Cell>
+                    {
+                      //consecutive editor is only available after the release finished...
+                    }
+                    {/*<Table.Cell>*/}
+                    {/*  {*/}
+                    {/*    (exercisePreview.hasUserSolution && exercisePreview.subsequentEditorPassedNormalTestsCount !== null) &&*/}
+                    {/*    <span className={exercisePreview.subsequentEditorPassedNormalTestsCount === exercisePreview.maxNormalTestsCount ? 'ok-colored' : ''}>*/}
+                    {/*      {exercisePreview.subsequentEditorPassedNormalTestsCount} / {exercisePreview.maxNormalTestsCount}*/}
+                    {/*    </span>*/}
+                    {/*  }*/}
+                    {/*</Table.Cell>*/}
                     {
                       this.props.hideShouldNotCountColumn === false &&
                       <Table.Cell>
diff --git a/src/components/sites/doExerciseSite/doExerciseSite.tsx b/src/components/sites/doExerciseSite/doExerciseSite.tsx
index 94f0d86d15be317eae2f71caec43398ffab726aa..fa54260bcda51e44518167082c3d7f71bc1c7767 100644
--- a/src/components/sites/doExerciseSite/doExerciseSite.tsx
+++ b/src/components/sites/doExerciseSite/doExerciseSite.tsx
@@ -922,7 +922,11 @@ class doExerciseSite extends React.Component<Props & RouteComponentProps<Matched
       releaseStartType: this.props.doExercise.exerciseRelease.releaseStartType,
       isVisibleToAllAfterRelease: false,
       releasedForPLangId: null,
-      leftTimeInS: null
+      leftTimeInS: null,
+      passedNormalTestsCount: 0,
+      maxNormalTestsCount: 0,
+      subsequentEditorPassedNormalTestsCount: null,
+      hasUserSolution: false,
     }
 
     const rest = updateExercisePreviews(
diff --git a/src/constants.ts b/src/constants.ts
index 6bfb4a76895ae3cfa0283a252474d2081a93d435..d2f1caf8ace7e8c607120c07941d849e96721168 100644
--- a/src/constants.ts
+++ b/src/constants.ts
@@ -13,7 +13,7 @@ import Logger from './helpers/logger'
  * y - breaking changes / new features
  * z - fixes, small changes
  */
-export const versionString = '2.15.0'
+export const versionString = '2.16.0'
 
 
 export const supportMail = 'yapex@informatik.uni-halle.de'
diff --git a/src/types/exercisePreview.ts b/src/types/exercisePreview.ts
index 114e92fa154c43ed005ab285488fb4151682cede..612fe0b1edc53d95a06fdfefc66b682ed6482c52 100644
--- a/src/types/exercisePreview.ts
+++ b/src/types/exercisePreview.ts
@@ -115,6 +115,14 @@ export interface ExercisePreviewFromBackend {
    * true: is still released,false: not
    */
   readonly isReleased: boolean
+
+  /**
+   * will be zero if no test was ran yet
+   */
+  readonly passedNormalTestsCount: number
+  readonly maxNormalTestsCount: number
+  readonly subsequentEditorPassedNormalTestsCount: number | null
+  readonly hasUserSolution: boolean
 }
 
 /**