diff --git a/Classes/Controller/Backend/NewsController.php b/Classes/Controller/BackendController.php
similarity index 96%
rename from Classes/Controller/Backend/NewsController.php
rename to Classes/Controller/BackendController.php
index 8fc166f4bffad90ab6e81ae7934df4a672255ccc..fa7812c5d9ee2e32d8d6f098a56a1892a73c260c 100644
--- a/Classes/Controller/Backend/NewsController.php
+++ b/Classes/Controller/BackendController.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace SGalinski\SgNews\Controller\Backend;
+namespace SGalinski\SgNews\Controller;
 
 /***************************************************************
  *  Copyright notice
@@ -36,7 +36,7 @@ use TYPO3\CMS\Extbase\Mvc\Controller\ActionController;
 /**
  * News Controller
  */
-class NewsController extends ActionController {
+class BackendController extends ActionController {
 
 	/**
 	 * DocHeaderComponent
diff --git a/Classes/ViewHelpers/AbstractViewHelper.php b/Classes/ViewHelpers/AbstractViewHelper.php
new file mode 100644
index 0000000000000000000000000000000000000000..5690834bba7665ef58b98b829bde03955b5d734c
--- /dev/null
+++ b/Classes/ViewHelpers/AbstractViewHelper.php
@@ -0,0 +1,51 @@
+<?php
+
+namespace SGalinski\SgNews\ViewHelpers;
+
+/***************************************************************
+ *  Copyright notice
+ *
+ *  (c) sgalinski Internet Services (https://www.sgalinski.de)
+ *
+ *  All rights reserved
+ *
+ *  This script is part of the TYPO3 project. The TYPO3 project is
+ *  free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  The GNU General Public License can be found at
+ *  http://www.gnu.org/copyleft/gpl.html.
+ *
+ *  This script is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  This copyright notice MUST APPEAR in all copies of the script!
+ ***************************************************************/
+
+use TYPO3\CMS\Fluid\ViewHelpers\Be\AbstractBackendViewHelper;
+
+/**
+ * Abstract view helper
+ */
+class AbstractViewHelper extends AbstractBackendViewHelper {
+	/**
+	 * Returns the base url of the site
+	 *
+	 * Note: Works only in frontend mode
+	 *
+	 * @return string
+	 */
+	public function getBaseUrl() {
+		if ($GLOBALS['TSFE']->absRefPrefix !== '') {
+			$baseUrl = $GLOBALS['TSFE']->absRefPrefix;
+		} else {
+			$baseUrl = $GLOBALS['TSFE']->baseUrl;
+		}
+
+		return $baseUrl;
+	}
+}
diff --git a/Classes/ViewHelpers/AddJavaScriptFileViewHelper.php b/Classes/ViewHelpers/AddJavaScriptFileViewHelper.php
new file mode 100644
index 0000000000000000000000000000000000000000..c8cd53b0ee94318519a58645d8a8bdfbd1691b98
--- /dev/null
+++ b/Classes/ViewHelpers/AddJavaScriptFileViewHelper.php
@@ -0,0 +1,49 @@
+<?php
+
+namespace SGalinski\SgNews\ViewHelpers;
+
+	/***************************************************************
+	 *  Copyright notice
+	 *
+	 *  (c) sgalinski Internet Services (http://www.sgalinski.de)
+	 *
+	 *  All rights reserved
+	 *
+	 *  This script is part of the TYPO3 project. The TYPO3 project is
+	 *  free software; you can redistribute it and/or modify
+	 *  it under the terms of the GNU General Public License as published by
+	 *  the Free Software Foundation; either version 3 of the License, or
+	 *  (at your option) any later version.
+	 *
+	 *  The GNU General Public License can be found at
+	 *  http://www.gnu.org/copyleft/gpl.html.
+	 *
+	 *  This script is distributed in the hope that it will be useful,
+	 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+	 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+	 *  GNU General Public License for more details.
+	 *
+	 *  This copyright notice MUST APPEAR in all copies of the script!
+	 ***************************************************************/
+
+/**
+ * View helper to add custom javascript files
+ *
+ * Example:
+ * {namespace lfe=SGalinski\Lfeditor\ViewHelpers}
+ * <lfe:addJavaScriptFile javaScriptFile="{f:uri.resource(path: 'Scripts/Frontend.js')}" />
+ */
+class AddJavaScriptFileViewHelper extends AbstractViewHelper {
+	/**
+	 * Adds a custom javascript file
+	 *
+	 * @param string $javaScriptFile
+	 * @return void
+	 */
+	public function render($javaScriptFile) {
+		$javaScriptFile = (TYPO3_MODE === 'FE' ? $this->getBaseUrl() : '') . $javaScriptFile;
+		$this->getPageRenderer()->addJsFile($javaScriptFile);
+	}
+}
+
+?>
diff --git a/Classes/ViewHelpers/InlineLanguageLabelsViewHelper.php b/Classes/ViewHelpers/InlineLanguageLabelsViewHelper.php
new file mode 100644
index 0000000000000000000000000000000000000000..5bc007644814a35e460cefc25530d8f087793069
--- /dev/null
+++ b/Classes/ViewHelpers/InlineLanguageLabelsViewHelper.php
@@ -0,0 +1,70 @@
+<?php
+
+namespace SGalinski\SgNews\ViewHelpers;
+
+/***************************************************************
+ *  Copyright notice
+ *
+ *  (c) sgalinski Internet Services (https://www.sgalinski.de)
+ *
+ *  All rights reserved
+ *
+ *  This script is part of the SG project. The SG project is
+ *  free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  The GNU General Public License can be found at
+ *  http://www.gnu.org/copyleft/gpl.html.
+ *
+ *  This script is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  This copyright notice MUST APPEAR in all copies of the script!
+ ***************************************************************/
+
+use TYPO3\CMS\Core\Utility\GeneralUtility;
+use TYPO3\CMS\Extbase\Utility\LocalizationUtility;
+
+/**
+ * View helper to render language labels to
+ * json array to be used in js applications.
+ *
+ * Renders to SG.lang.'extension name' object
+ *
+ * Example:
+ * {namespace rs=SGalinski\RsEvents\ViewHelpers}
+ * <rs:inlineLanguageLabels labels="label01,label02" />
+ */
+class InlineLanguageLabelsViewHelper extends AbstractViewHelper {
+	/**
+	 * Renders the required javascript to make the language labels available
+	 *
+	 * @param string $labels Comma separated list of label keys to include
+	 * @param boolean $htmlEscape
+	 * @return string
+	 */
+	public function render($labels = '', $htmlEscape = FALSE) {
+		$extensionName = $this->controllerContext->getRequest()->getControllerExtensionName();
+		$labels = GeneralUtility::trimExplode(',', $labels, TRUE);
+		$languageArray = [];
+		foreach ($labels as $key) {
+			$value = LocalizationUtility::translate($key, $extensionName);
+			$languageArray[$key] = ($htmlEscape ? htmlentities($value) : $value);
+		}
+		return '
+			<script type="text/javascript">
+			var SG = SG || {};
+			SG.lang = SG.lang || {};
+			SG.lang.' . $extensionName . ' = SG.lang.' . $extensionName . ' || {};
+			var languageLabels = ' . json_encode($languageArray) . ';
+			for (label in languageLabels) {
+				SG.lang.' . $extensionName . '[label] = languageLabels[label];
+			}
+			</script>
+		';
+	}
+}
diff --git a/Configuration/TypoScript/Backend/constants.txt b/Configuration/TypoScript/Backend/constants.txt
deleted file mode 100644
index 023c08a85a1548b52208396e33b3f5d800d81796..0000000000000000000000000000000000000000
--- a/Configuration/TypoScript/Backend/constants.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-module.tx_sgnews {
-	settings < plugin.tx_sgnews.settings
-	persistence < plugin.tx_sgnews.persistence
-	view < plugin.tx_sgnews.view
-	view {
-		# cat=plugin.tx_sgnews/file; type=string; label=Path to template root (FE)
-		templateRootPaths {
-			10 = EXT:sg_news/Resources/Private/Backend/Templates/
-		}
-
-		# cat=plugin.tx_sgnews/file; type=string; label=Path to template partials (FE)
-		partialRootPaths {
-			10 = EXT:sg_news/Resources/Private/Backend/Partials/
-		}
-
-		# cat=plugin.tx_sgnews/file; type=string; label=Path to template layouts (FE)
-		layoutRootPaths {
-			10 = EXT:sg_news/Resources/Private/Backend/Layouts/
-		}
-	}
-}
-
diff --git a/Configuration/TypoScript/Backend/setup.txt b/Configuration/TypoScript/Backend/setup.txt
deleted file mode 100644
index b23bfcbad31a8def92dc534df2b2f1e8c1d0ce12..0000000000000000000000000000000000000000
--- a/Configuration/TypoScript/Backend/setup.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-module.tx_sgnews {
-	settings < plugin.tx_sgnews.settings
-	persistence < plugin.tx_sgnews.persistence
-	view < plugin.tx_sgnews.view
-	view {
-		# cat=plugin.tx_sgnews/file; type=string; label=Path to template root (FE)
-		templateRootPaths {
-			10 = {$module.tx_sgnews.view.templateRootPaths.10}
-		}
-
-		# cat=plugin.tx_sgnews/file; type=string; label=Path to template partials (FE)
-		partialRootPaths {
-			10 = {$module.tx_sgnews.view.partialRootPaths.10}
-		}
-
-		# cat=plugin.tx_sgnews/file; type=string; label=Path to template layouts (FE)
-		layoutRootPaths {
-			10 = {$module.tx_sgnews.view.layoutRootPaths.10}
-		}
-	}
-}
-
diff --git a/Resources/Private/Backend/Layouts/Default.html b/Resources/Private/Layouts/Backend.html
similarity index 100%
rename from Resources/Private/Backend/Layouts/Default.html
rename to Resources/Private/Layouts/Backend.html
diff --git a/Resources/Private/Backend/Partials/ButtonBar.html b/Resources/Private/Partials/ButtonBar.html
similarity index 100%
rename from Resources/Private/Backend/Partials/ButtonBar.html
rename to Resources/Private/Partials/ButtonBar.html
diff --git a/Resources/Private/Backend/Templates/News/Index.html b/Resources/Private/Templates/Backend/Index.html
similarity index 74%
rename from Resources/Private/Backend/Templates/News/Index.html
rename to Resources/Private/Templates/Backend/Index.html
index 651ad16f64a21284f31cb63454b6e343192d83ac..208d379c5c1744d768881342d3f00a2386e72397 100644
--- a/Resources/Private/Backend/Templates/News/Index.html
+++ b/Resources/Private/Templates/Backend/Index.html
@@ -1,10 +1,11 @@
 {namespace sg=SGalinski\SgRoutes\ViewHelpers}
 
-<f:layout name="Default" />
+<f:layout name="Backend" />
 
 <f:section name="iconButtons">
 </f:section>
-
+<f:section name="headline">
+</f:section>
 <f:section name="content">
 	<f:flashMessages />
 	<p>
diff --git a/ext_localconf.php b/ext_localconf.php
index e0561cde56f7809200bcb0a2183c80dcb36af366..0ed3fdf6bb7dd568a9d2c74200079b2a557f1856 100644
--- a/ext_localconf.php
+++ b/ext_localconf.php
@@ -13,17 +13,6 @@ $extPath = \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('sg_news'
 $tsPath = $extPath . 'Configuration/TypoScript/Common/';
 \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTypoScriptSetup(file_get_contents($tsPath . 'setup.txt'));
 
-// backend typoscript configuration
-if (TYPO3_MODE === 'BE') {
-	$tsPath = $extPath . 'Configuration/TypoScript/Backend/';
-
-	\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTypoScriptConstants(
-		file_get_contents($tsPath . 'constants.txt')
-	);
-
-	\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTypoScriptSetup(file_get_contents($tsPath . 'setup.txt'));
-}
-
 // plugin configurations
 \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
 	'SGalinski.sg_news',
diff --git a/ext_tables.php b/ext_tables.php
index dcbe4274d7a44fad41dfd540d20e1291814e8950..983a3a4e742a80fc6577364bfb182c24ee61c71f 100644
--- a/ext_tables.php
+++ b/ext_tables.php
@@ -35,7 +35,7 @@ if (TYPO3_MODE === 'BE') {
 		'News',
 		'',
 		[
-			'Backend\News' => 'index',
+			'Backend' => 'index',
 		],
 		[
 			'access' => 'user,group',