diff --git a/src/components/sites/doExerciseSite/afterEditorPanel/afterEditorPanelView.tsx b/src/components/sites/doExerciseSite/afterEditorPanel/afterEditorPanelView.tsx
index 91bc8d9f6ea15fa1c9d04940d3cdeb030c5c6e15..e050a38f5d3f3f82a602ff78e5bbc11cac2cf39c 100644
--- a/src/components/sites/doExerciseSite/afterEditorPanel/afterEditorPanelView.tsx
+++ b/src/components/sites/doExerciseSite/afterEditorPanel/afterEditorPanelView.tsx
@@ -9,7 +9,7 @@ import {returntypeof} from 'react-redux-typescript';
 import {RootState} from "../../../../state/reducers";
 import MultiTabCodeEditorWrapper from '../../../codeEditors/multiTabCodeEditorWrapper'
 import {
-  closeTabChangeAfterEditor,
+  closeTabChangeAfterEditor, onCreateFileAfterDoEditor,
   openTabChangeAfterEditor,
   setAfterEditor_hasFileChangedMap,
   setAfterEditor_hasUnsavedChanges,
@@ -73,6 +73,7 @@ const mapDispatchToProps = (dispatch: Dispatch) => bindActionCreators({
   setAfterEditor_renamingFileNameDoEditor,
   setAfterSolutionFiles,
 
+  onCreateFileAfterDoEditor,
   setSolutionFiles_AndRefreshEditor,
 }, dispatch)
 
@@ -164,13 +165,8 @@ class afterEditorPanelView extends React.Component<Props, any> {
               isContentVisibleForUser: true,
             }
 
-            // this.props.setAfterSolutionFiles(
-            //   [...this.props.afterSolution.solutionFiles, newFile]
-            // )
-
-            this.props.setSolutionFiles_AndRefreshEditor([...this.props.afterSolution.solutionFiles, newFile],
-              this.props.setAfterSolutionFiles
-            )
+            //this also shows the new file
+            this.props.onCreateFileAfterDoEditor(newFile, this.props.afterSolution.solutionFiles, this.props.selectedTabIdDoEditor)
 
           }}
 
diff --git a/src/components/sites/doExerciseSite/editorPanel/editorPanelView.tsx b/src/components/sites/doExerciseSite/editorPanel/editorPanelView.tsx
index 245a3d380e00942bd7480277445f0604ae1509f0..90fa7a48c9c281467722b6d3057e3ac3d36ffed3 100644
--- a/src/components/sites/doExerciseSite/editorPanel/editorPanelView.tsx
+++ b/src/components/sites/doExerciseSite/editorPanel/editorPanelView.tsx
@@ -9,7 +9,7 @@ import {returntypeof} from 'react-redux-typescript';
 import {RootState} from "../../../../state/reducers";
 import MultiTabCodeEditorWrapper from '../../../codeEditors/multiTabCodeEditorWrapper'
 import {
-  closeTabChangeDoEditor,
+  closeTabChangeDoEditor, onCreateFileDoEditor,
   openTabChangeDoEditor,
   setHasFileChangedMapDoEditor,
   setHasUnsavedChanges,
@@ -99,6 +99,7 @@ const mapDispatchToProps = (dispatch: Dispatch) => bindActionCreators({
                                                                         setHasFileChangedMapDoEditor,
 
                                                                         setSolutionFiles_AndRefreshEditor,
+                                                                        onCreateFileDoEditor,
                                                                       }, dispatch)
 
 
@@ -190,11 +191,8 @@ class editorPanelView extends React.Component<Props, any> {
             isContentVisibleForUser: true,
           }
 
-          this.props.setSolutionFiles_AndRefreshEditor([...this.props.solution.solutionFiles, newFile],
-                                                       this.props.setSolutionFiles,
-          )
-
-          //this.props.setSolutionFiles_CreateFile([...this.props.solution.solutionFiles, newFile])
+          //this also shows the new file
+          this.props.onCreateFileDoEditor(newFile, this.props.solution.solutionFiles, this.props.selectedTabIdDoEditor)
 
         }}
 
diff --git a/src/constants.ts b/src/constants.ts
index dfcac1b4c7bb9c6cd2358a98996424fa2253f942..e9158939a3edc9be05abd7d504b9cc5c8adf472c 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.10.4'
+export const versionString = '2.10.5'
 
 
 export const supportMail = 'yapex@informatik.uni-halle.de'
diff --git a/src/helpers/editorHelper.ts b/src/helpers/editorHelper.ts
index b56873dbb114dce6fd558387b43bdb235160e2ee..c40aa52fd1d8bda5925857b8eae168a728af7da8 100644
--- a/src/helpers/editorHelper.ts
+++ b/src/helpers/editorHelper.ts
@@ -17,6 +17,8 @@ import {getI18n, KnownLangs} from "../../i18n/i18nRoot";
 import {EditorWrapperTab} from "../components/codeEditors/aceEditors/aceEditorsStorageHelper";
 import {defaultEditorMode} from '../constants'
 import {PLangFullBase} from '../types/pLangs'
+import {openTabChangeCodeTemplate} from '../state/actions/exerciseEditorSite/dialogs/changeCodeTemplateDialog/changeCodeTemplateDialogActions'
+import {openTabChangeDoEditor} from '../state/actions/doExerciseSite/editorActions/doEditorActions'
 
 
 /**
@@ -1069,7 +1071,7 @@ function _userIsAllowedToSolveExercisePreview(preview: ExercisePreviewsFrontendE
  * so that we get always a valid editor state (with undo, selection...)
  *
  *
- * if you wan't to call these funcs on your own see type MultiTabEditorState for usage
+ * if you want to call these funcs on your own see type MultiTabEditorState for usage
  *
  * @param {ReadonlyArray<SolutionFileDoExerciseFullBase>} solutionFiles
  * @param {(files: ReadonlyArray<SolutionFileDoExerciseFullBase>) => void} setSolutionFilesAction
diff --git a/src/state/actions/doExerciseSite/editorActions/afterEditorActions.ts b/src/state/actions/doExerciseSite/editorActions/afterEditorActions.ts
index eab7bafdcc5a7c067da65e5367f8bf896abf9c81..10944eebcddae23eee6758d33ca8f7a5c07cf61d 100644
--- a/src/state/actions/doExerciseSite/editorActions/afterEditorActions.ts
+++ b/src/state/actions/doExerciseSite/editorActions/afterEditorActions.ts
@@ -3,16 +3,22 @@
  */
 import {
   SET_afterEditor_hasFileChangedMapAction,
-  SET_afterEditor_hasUnsavedChangesAction, SET_afterEditor_isFileExplorerDisplayedDoEditorAction,
+  SET_afterEditor_hasUnsavedChangesAction,
+  SET_afterEditor_isFileExplorerDisplayedDoEditorAction,
   SET_afterEditor_isRenamingFileDoEditorAction,
-  SET_afterEditor_newFileNameDoEditorAction, SET_afterEditor_renamingFileIdDoEditorAction,
+  SET_afterEditor_newFileNameDoEditorAction,
+  SET_afterEditor_renamingFileIdDoEditorAction,
   SET_afterEditor_renamingFileNameDoEditorAction,
   SET_afterEditor_selectedTabIdDoEditorAction
 } from "../../../reducers/doExerciseSite/editorReducers/afterEditorReducer";
-import {changeTabVisibility, HasFileChangedMap} from "../../../../helpers/editorHelper";
+import {
+  changeTabVisibility,
+  HasFileChangedMap,
+  setSolutionFiles_AndRefreshEditor
+} from "../../../../helpers/editorHelper";
 import {ActionType} from "../../../reducers/doExerciseSite/doExerciseSiteActionTypes";
 import {SolutionFileDoExerciseFullBase} from "../../../../types/exerciseSolution";
-import {MultiActions} from "../../types";
+import {AwaitActions, MultiActions} from "../../types";
 import {setAfterSolutionFiles} from "../doExerciseSiteActions";
 
 export function setAfterEditor_hasUnsavedChanges(hasUnsavedChanges: boolean): SET_afterEditor_hasUnsavedChangesAction {
@@ -38,6 +44,30 @@ export function setAfterEditor_hasFileChangedMap(hasFileChangedMap: HasFileChang
 }
 
 
+/**
+ *
+ * @param newFile
+ * @param solutionFiles
+ * @param selectedEditorTabId the currently (old) selected tab id
+ */
+export function onCreateFileAfterDoEditor(newFile: SolutionFileDoExerciseFullBase,
+  solutionFiles: ReadonlyArray<SolutionFileDoExerciseFullBase>,
+  selectedEditorTabId: number): AwaitActions {
+  return async (dispatch) => {
+
+    const newSolutionFiles: ReadonlyArray<SolutionFileDoExerciseFullBase> = [...solutionFiles, newFile]
+
+    await dispatch(setSolutionFiles_AndRefreshEditor(
+      newSolutionFiles,
+      setAfterSolutionFiles,
+      )
+    )
+
+    //open the new file
+    dispatch(openTabChangeAfterEditor(newFile, newSolutionFiles, selectedEditorTabId))
+  }
+}
+
 /**
  * the file
  * @param {SolutionFileDoExerciseFullBase} file the file (won't be used to change something)
@@ -98,4 +128,4 @@ export function setAfterEditor_renamingFileNameDoEditor(renamingFileNameDoEditor
     type: ActionType.SET_afterEditor_renamingFileNameDoEditor,
     renamingFileNameDoEditor
   }
-}
\ No newline at end of file
+}
diff --git a/src/state/actions/doExerciseSite/editorActions/doEditorActions.ts b/src/state/actions/doExerciseSite/editorActions/doEditorActions.ts
index bbf6cc890941532f8b423294f1249a4dcf4d816d..23ca6251731a3d8c0b64d6289beb52bbca561d96 100644
--- a/src/state/actions/doExerciseSite/editorActions/doEditorActions.ts
+++ b/src/state/actions/doExerciseSite/editorActions/doEditorActions.ts
@@ -3,16 +3,23 @@
  */
 import {
   SET_hasFileChangedMapAction,
-  SET_isFileExplorerDisplayedDoEditorAction, SET_isRenamingFileDoEditorAction, SET_newFileNameDoEditorAction,
-  SET_renamingFileIdDoEditorAction, SET_renamingFileNameDoEditorAction,
+  SET_hasUnsavedChangesAction,
+  SET_isFileExplorerDisplayedDoEditorAction,
+  SET_isRenamingFileDoEditorAction,
+  SET_newFileNameDoEditorAction,
+  SET_renamingFileIdDoEditorAction,
+  SET_renamingFileNameDoEditorAction,
   SET_selectedTabIdDoEditorAction
 } from "../../../reducers/doExerciseSite/editorReducers/doEditorReducer";
 import {ActionType} from "../../../reducers/doExerciseSite/doExerciseSiteActionTypes";
-import {changeTabVisibility, HasFileChangedMap} from "../../../../helpers/editorHelper";
-import {MultiActions} from "../../types";
+import {
+  changeTabVisibility,
+  HasFileChangedMap,
+  setSolutionFiles_AndRefreshEditor
+} from "../../../../helpers/editorHelper";
+import {AwaitActions, MultiActions} from "../../types";
 import {SolutionFileDoExerciseFullBase} from "../../../../types/exerciseSolution";
 import {setSolutionFiles} from "../doExerciseSiteActions";
-import {SET_hasUnsavedChangesAction} from "../../../reducers/doExerciseSite/editorReducers/doEditorReducer";
 
 
 export function setHasUnsavedChanges(hasUnsavedChanges: boolean): SET_hasUnsavedChangesAction {
@@ -37,6 +44,29 @@ export function setHasFileChangedMapDoEditor(hasFileChangedMap: HasFileChangedMa
   }
 }
 
+/**
+ *
+ * @param newFile
+ * @param solutionFiles
+ * @param selectedEditorTabId the currently (old) selected tab id
+ */
+export function onCreateFileDoEditor(newFile: SolutionFileDoExerciseFullBase,
+  solutionFiles: ReadonlyArray<SolutionFileDoExerciseFullBase>,
+  selectedEditorTabId: number): AwaitActions {
+  return async (dispatch) => {
+
+    const newSolutionFiles: ReadonlyArray<SolutionFileDoExerciseFullBase> = [...solutionFiles, newFile]
+
+    await dispatch(setSolutionFiles_AndRefreshEditor(
+      newSolutionFiles,
+      setSolutionFiles,
+      )
+    )
+
+    //open the new file
+    dispatch(openTabChangeDoEditor(newFile, newSolutionFiles, selectedEditorTabId))
+  }
+}
 
 /**
  * changes the visibility of a tab
@@ -98,4 +128,4 @@ export function setRenamingFileNameDoEditor(renamingFileNameDoEditor: string): S
     type: ActionType.SET_renamingFileNameDoEditor,
     renamingFileNameDoEditor
   }
-}
\ No newline at end of file
+}
diff --git a/src/state/actions/exerciseEditorSite/dialogs/changeCodeTemplateDialog/changeCodeTemplateActions.ts b/src/state/actions/exerciseEditorSite/dialogs/changeCodeTemplateDialog/changeCodeTemplateActions.ts
index 8d4860f66965eadfc01d57746f6e76844b945630..708e1deda7cb93397b7de44da6f482fd12dd4f04 100644
--- a/src/state/actions/exerciseEditorSite/dialogs/changeCodeTemplateDialog/changeCodeTemplateActions.ts
+++ b/src/state/actions/exerciseEditorSite/dialogs/changeCodeTemplateDialog/changeCodeTemplateActions.ts
@@ -36,6 +36,12 @@ export function setMainFileId(mainFileId: number): SET_mainFileIdAction {
   }
 }
 
+/**
+ *
+ * @param newFile
+ * @param templateFiles
+ * @param selectedEditorTabId the currently (old) selected tab id
+ */
 export function onCreateTemplateFile(newFile: ExerciseCodeTemplateFileFullBase, templateFiles: ReadonlyArray<ExerciseCodeTemplateFileFullBase>, selectedEditorTabId: number): AwaitActions {
   return async (dispatch) => {
 
diff --git a/src/state/actions/exerciseEditorSite/dialogs/changeCodeTemplateDialog/changeCodeTemplateDialogActions.ts b/src/state/actions/exerciseEditorSite/dialogs/changeCodeTemplateDialog/changeCodeTemplateDialogActions.ts
index aafcf84bc902906b1c8caa7c579dc2be2e80c8fe..5cfa6629852006204d4a79007de0743ac434b306 100644
--- a/src/state/actions/exerciseEditorSite/dialogs/changeCodeTemplateDialog/changeCodeTemplateDialogActions.ts
+++ b/src/state/actions/exerciseEditorSite/dialogs/changeCodeTemplateDialog/changeCodeTemplateDialogActions.ts
@@ -103,54 +103,6 @@ export function changeTabVisibilityChangeCodeTemplate(targetFile: ExerciseCodeTe
                                                       selectedFileId: number): MultiActions {
 
   return changeTabVisibility(targetFile, isDisplayed, templateFiles, selectedFileId, setTemplateFiles, setSelectedEditorTabIdChangeCodeTemplate)
-  //TODO remove
-  // return dispatch => {
-  //
-  //   //this would do nothing and it's a bug when we execute this because this would hide the file
-  //   if (isDisplayed === true && targetFile.id === selectedFileId) return
-  //
-  //   // noinspection TsLint
-  //   let currDisplayIndex = 1
-  //   // noinspection TsLint
-  //   let currNotDisplayedIndex = -1
-  //
-  //   const newTempFiles = templateFiles.map(file => {
-  //     return file.id === targetFile.id
-  //       ? {
-  //         ...file,
-  //         displayIndex: isDisplayed ? currDisplayIndex++ : currNotDisplayedIndex--
-  //       }
-  //       : {
-  //         ...file,
-  //         displayIndex: (file.displayIndex >= 0) ? currDisplayIndex++ : currNotDisplayedIndex--
-  //       }
-  //   })
-  //
-  //   dispatch(setTemplateFiles(newTempFiles))
-  //
-  //   //set new selected tab if necessary
-  //
-  //   if (targetFile.id === selectedFileId) {
-  //     //now selected the next file... or nothing
-  //
-  //     const visibleFiles = newTempFiles.filter(p => p.displayIndex >= 0)
-  //
-  //     if (visibleFiles.length === 0) {
-  //       //no files is left open...
-  //       dispatch(setSelectedEditorTabIdChangeCodeTemplate(-1))
-  //     } else {
-  //
-  //       const visibleFile = getMaxEntity(visibleFiles, p => p.displayIndex)
-  //
-  //       dispatch(setSelectedEditorTabIdChangeCodeTemplate(visibleFile.id))
-  //     }
-  //   } else if (targetFile.id !== selectedFileId && isDisplayed === true) {
-  //
-  //     //we clicked a file that is not the current active file ... make it the active file
-  //     dispatch(setSelectedEditorTabIdChangeCodeTemplate(targetFile.id))
-  //
-  //   }
-  // }
 }