diff --git a/public_html/deployment/classes/page.class.php b/public_html/deployment/classes/page.class.php
index 18e750c124900b2adefccd6f8018f19157768524..533d8c6b53544a35579f0bb50dc5a6874c4eac5a 100644
--- a/public_html/deployment/classes/page.class.php
+++ b/public_html/deployment/classes/page.class.php
@@ -1,52 +1,55 @@
 <?php
 
 /**
- * PIMPED APACHE-STATUS
  * Page class
  * Render output page by replacing placeholders 
  *
- * @package pimped_apache_status
+ * origin is from PIMPED APACHE-STATUS
+ * 
  * @author Axel Hahn
+ * 
+ * 2024-08-23  v1.1  Axel Hahn  php8 only; added variable types; short array syntax
  */
-class Page {
+class Page
+{
 
     /**
-     * output type of content
-     * @var array
+     * Output type of content
+     * @var string
      */
-    private $sType = 'html';
+    private string $sType = 'html';
 
     /**
-     * array of strings for http response header
+     * Array of strings for http response header
      * @var array
      */
-    private $aResponseHeader = array();
+    private array $aResponseHeader = [];
 
     /**
      * Replacements in the template
      * @var array
      */
-    private $aReplace = array(
+    private array $aReplace = [
         '{{HEADER}}' => '',
         '{{CONTENT}}' => '',
         '{{FOOTER}}' => '',
         '{{JSONREADY}}' => '',
-    );
+    ];
 
     /**
-     * constructor (it does nothing)
-     * @return boolean (true)
+     * Constructor
      */
-    public function __construct() {
+    public function __construct()
+    {
         $this->setOutputtype();
-        return true;
     }
 
     /**
-     * wrap on document ready instructions in jQuery style
-     * @return type 
+     * Wrap on document ready instructions in jQuery style
+     * @return string
      */
-    private function _finalizeJsOnReady() {
+    private function _finalizeJsOnReady(): string
+    {
         return $this->aReplace["{{JSONREADY}}"] = '
             <script>
                 $(document).ready(function() {
@@ -60,43 +63,48 @@ class Page {
     // ----------------------------------------------------------------------
 
     /**
-     * get current page content
-     * @return string
+     * Get current page content
+     * @return string HTML code
      */
-    public function getContent() {
+    public function getContent(): string
+    {
         return $this->aReplace['{{CONTENT}}'];
     }
-    
+
     /**
-     * get current footer
-     * @return type
+     * Get current footer
+     * @return string
      */
-    public function getFooter() {
+    public function getFooter(): string
+    {
         return $this->aReplace['{{FOOTER}}'];
     }
 
     /**
-     * get current header in response body
-     * @return type
+     * Get current header in response body
+     * @return string
      */
-    public function getHeader() {
+    public function getHeader(): string
+    {
         return $this->aReplace['{{HEADER}}'];
     }
 
     /**
-     * get on ready javascript instructions
-     * @return type¨
+     * Get on ready javascript instructions
+     * @return string
      */
-    public function getJsOnReady() {
+    public function getJsOnReady(): string
+    {
         return $this->aReplace['{{JSONREADY}}'];
     }
-        
-    
+
+
     /**
-     * get output type
+     * Get output type
      * @return string
      */
-    public function getOutputtype() {
+    public function getOutputtype()
+    {
         return $this->sType;
     }
 
@@ -105,12 +113,14 @@ class Page {
     // ----------------------------------------------------------------------
 
     /**
-     * add javascript for on ready execution
+     * Add javascript for on ready execution
      * @param string $s  javascript code
-     * @return boolean
+     * @return bool
      */
-    public function addJsOnReady($s) {
-        return $this->aReplace['{{JSONREADY}}'] .= $s;
+    public function addJsOnReady(string $s): string
+    {
+        $this->aReplace['{{JSONREADY}}'] .= $s;
+        return true;
     }
 
     /**
@@ -118,67 +128,78 @@ class Page {
      * @param string $s
      * @return boolean
      */
-    public function addResponseHeader($s) {
-        return $this->aResponseHeader[] = $s;
+    public function addResponseHeader(string $s)
+    {
+        $this->aResponseHeader[] = $s;
+        return true;
     }
 
     /**
-     * set html body; it replaces old content
+     * Set html body; it replaces old content
      * @param string $s  html code
      * @return boolean
      */
-    public function setContent($s) {
-        return $this->aReplace['{{CONTENT}}'] = $s;
+    public function setContent(string $s): bool
+    {
+        $this->aReplace['{{CONTENT}}'] = $s;
+        return true;
     }
     /**
-     * set footer in html body; it replaces old content
+     * Set footer in html body; it replaces old content
      * @param string $s  html code
      * @return boolean
      */
-    public function setFooter($s) {
-        return $this->aReplace['{{FOOTER}}'] = $s;
+    public function setFooter(string $s): bool
+    {
+        $this->aReplace['{{FOOTER}}'] = $s;
+        return true;
     }
 
     /**
-     * set html header; it replaces old content
+     * Set html header; it replaces old content
      * @param string $s  html code
      * @return boolean
      */
-    public function setHeader($s) {
-        return $this->aReplace['{{HEADER}}'] = $s;
+    public function setHeader(string $s): bool
+    {
+        $this->aReplace['{{HEADER}}'] = $s;
+        return true;
     }
 
     /**
-     * set javascript code on ready; it replaces old content
+     * Set javascript code on ready; it replaces old content
      * @param string $s  javascript code
      * @return boolean
      */
-    public function setJsOnReady($s) {
-        return $this->aReplace['{{JSONREADY}}'] = $s;
+    public function setJsOnReady(string $s): bool
+    {
+        $this->aReplace['{{JSONREADY}}'] = $s;
+        return true;
     }
-    
+
     /**
-     * set output type of response
+     * Set output type of response
      * @param string $sOutputType
      * @return boolean
      */
-    public function setOutputtype($sOutputType = 'html') {
-        return $this->sType = $sOutputType;
+    public function setOutputtype(string $sOutputType = 'html'): bool
+    {
+        $this->sType = $sOutputType;
+        return true;
     }
 
-
-
     // ----------------------------------------------------------------------
     // OUTPUT
     // ----------------------------------------------------------------------
 
     /**
-     * send http reponse headers and built the response body
-     * @return type
+     * Send http reponse headers and built the response body
+     * @return string
      */
-    public function render() {
-        $aS = array(); // search
-        $aR = array(); // replace
+    public function render(): string
+    {
+        $aS = []; // search
+        $aR = []; // replace
 
         $this->_finalizeJsOnReady();
 
@@ -190,12 +211,12 @@ class Page {
         $sTemplate = false;
         $sTplFile = dirname(__FILE__) . "/" . $this->sType . ".tpl.php";
         if (!file_exists($sTplFile)) {
-            die("ERROR: template for type " . $this->sType . " was not found: $sTplFile");
+            throw new Exception("ERROR: template for type " . $this->sType . " was not found: $sTplFile");
         }
 
         $sTemplate = file_get_contents($sTplFile);
         if (!$sTemplate) {
-            die("ERROR: template file $sTplFile is empty or could not be read.");
+            throw new Exception("ERROR: template file $sTplFile is empty or could not be read.");
         }
 
         foreach ($this->aResponseHeader as $sHeader) {
@@ -205,5 +226,3 @@ class Page {
     }
 
 }
-
-?>