diff --git a/public_html/classes/htmlelements.class.php b/public_html/classes/htmlelements.class.php
index 91c1f502d13b27aa37d4c3dc00d1050694615f58..18d58b69e46f14477046359e68e5a6d732a85f52 100755
--- a/public_html/classes/htmlelements.class.php
+++ b/public_html/classes/htmlelements.class.php
@@ -15,19 +15,30 @@
  *    - icon  - will be added as <i class="[icon value]"></i> to the label
  * 
  * @author Axel
+ * 
+ * 2024-07-04  <axel.hahn@unibe.ch>  added type declarations; update php docs
  */
 class htmlelements
 {
 
     /**
      * set of auto generated icon prefixes
-     * @var type 
+     * @var array
      */
     var $_aIcons = array(
         // 'fa-'=>'fa ',
     );
 
+    /**
+     * label of an html tag (pseudo attribute)
+     * @var string
+     */
     var $_sLabel = '';
+
+    /**
+     * hash of attributes and values of an html tag
+     * @var array
+     */
     var $_aAttributes = array();
 
 
@@ -51,7 +62,7 @@ class htmlelements
      * generate html attibutes with all internal attributes key -> values
      * @return string
      */
-    protected function _addAttributes()
+    protected function _addAttributes(): string
     {
         $sReturn = '';
         foreach ($this->_aAttributes as $sAttr => $sValue) {
@@ -74,7 +85,7 @@ class htmlelements
      * @param array $aAttributes
      * @return boolean
      */
-    protected function _setAttributes($aAttributes)
+    protected function _setAttributes(array $aAttributes): bool
     {
         $this->_sLabel = '';
         if (isset($aAttributes['icon']) && $aAttributes['icon']) {
@@ -104,7 +115,7 @@ class htmlelements
      * @param boolean  $bCloseTag     optional: set false if tag has no closing tag (= ending with "/>")
      * @return type
      */
-    public function getTag($sTag, $aAttributes, $bCloseTag = true)
+    public function getTag(string $sTag, array $aAttributes, bool $bCloseTag = true): string
     {
         $sTpl = $bCloseTag ? "<$sTag%s>%s</$sTag>" : "<$sTag %s/>%s";
         $this->_setAttributes($aAttributes);
@@ -119,13 +130,14 @@ class htmlelements
     // ----------------------------------------------------------------------
 
     /**
-     * helper detect prefix of a string add prefix of a framework
+     * get html code for an icon
+     * includes a helper detect prefix of a string add prefix of a framework
      * i.e. value "fa-close" detects font awesome and adds "fa " as prefix
      * 
-     * @param string $sIconclass
-     * @return boolean
+     * @param string $sIconclass  name of the icon
+     * @return string
      */
-    public function getIcon($sIconclass = false)
+    public function getIcon(string $sIconclass = ''): string
     {
         if (!$sIconclass) {
             return '';
@@ -137,8 +149,6 @@ class htmlelements
                 continue;
             }
         }
-        // do not use this .. it overrides internal attribute vars
-        // return $this->getTag('i', array('class'=>$sPrefix.$sIconclass));
         return '<i class="' . $sPrefix . $sIconclass . '"></i> ';
     }
 
@@ -168,7 +178,7 @@ class htmlelements
      * @param array $aAttributes  attributes of the option tag
      * @return string
      */
-    public function getFormOption($aAttributes)
+    public function getFormOption(array $aAttributes): string
     {
         $sTpl = '<option %s>%s</option>';
         $this->_setAttributes($aAttributes);
@@ -181,7 +191,7 @@ class htmlelements
      * @param array $aOptions     array for all option fields
      * @return string
      */
-    public function getFormSelect($aAttributes, $aOptions = array())
+    public function getFormSelect(array $aAttributes, array $aOptions = array())
     {
         // $sTpl = '<select %s>%s</select>';
 
@@ -195,14 +205,18 @@ class htmlelements
         }
         $aAttributes['label'] = $sOptions;
         return $this->getTag('select', $aAttributes);
-        /*
-        $this->_setAttributes($aAttributes);
-        return sprintf($sTpl, $this->_addAttributes(), $sOptions);
-         * 
-         */
     }
 
-    public function getTable($aHead, $aBody, $aTableAttributes = array())
+
+    /**
+     * Generates an HTML table based on the provided header and body arrays.
+     *
+     * @param array $aHead An array of strings representing the table headers.
+     * @param array $aBody A 2-dimensional array of strings representing the table body rows and cells.
+     * @param array $aTableAttributes An optional array of attributes to be applied to the table element.
+     * @return string The HTML code for the generated table.
+     */
+    public function getTable(array $aHead, array $aBody, array $aTableAttributes = []): string
     {
         $sReturn = '';
         $sTdata = '';