diff --git a/html/_layouts/default.php b/html/_layouts/default.php
index 32f38cd00eed10538b537bcacd307735a771d930..58a76b8436e02a3c4402e31e1c5dad72552d3b87 100644
--- a/html/_layouts/default.php
+++ b/html/_layouts/default.php
@@ -69,7 +69,7 @@ if( !empty($csv) ){
   <link rel="stylesheet" href="assets/css/custom.css?8">
   <script src="assets/js/jquery.min.js"></script>
   <script src="assets/js/utils.js"></script>
-  <script src="assets/js/script.js?3"></script>
+  <script src="assets/js/script.js"></script>
 </head>
 
 <body>
@@ -102,7 +102,6 @@ if( !empty($csv) ){
     }
     var SPIELER=json_load('functions/get_spieler.php');
     var UNKNOWN=json_load('functions/get_unknown.php');
-    console.log( UNKNOWN );
     if( UNKNOWN.length == 0 ) UNKNOWN=[[''],['']];
 
     UNKNOWN = UNKNOWN.reduce((a,b) => (a.concat(b)));
@@ -166,10 +165,8 @@ if( !empty($csv) ){
 
     if( check ){
       $(document).ready( function(){
-
           calculatePartien('{{ page.saison }}', '{{ page.date }}');
-          calculatePunktestand('{{ page.saison }}', '7');
-          //calculatePunktestand( 0, '7');
+          calculatePunktestand('{{ page.saison }}', '7');  // ######## check this
           calculateTabelle('{{ page.saison }}','T');
           calculateTabelle('{{ page.saison }}','A');
           calculateTabelle('{{ page.saison }}','Z');
@@ -256,25 +253,27 @@ if( !empty($csv) ){
               var div = document.createElement('div');
               div.classList='face';
 
-              var img = document.createElement('img');
-              img.src='images/facegenerator/fg_head_' + v.face.split(/_/g)[0] + '.png';
-              $(div).append(img);
+              if( v.face.split(/_/g).length == 5 ){
+                var img = document.createElement('img');
+                img.src='images/facegenerator/fg_head_' + v.face.split(/_/g)[0] + '.png';
+                $(div).append(img);
 
-              var img = document.createElement('img');
-              img.src='images/facegenerator/fg_hair_' + v.face.split(/_/g)[1] + '.png';
-              $(div).append(img);
+                var img = document.createElement('img');
+                img.src='images/facegenerator/fg_hair_' + v.face.split(/_/g)[1] + '.png';
+                $(div).append(img);
 
-              var img = document.createElement('img');
-              img.src='images/facegenerator/fg_beard_' + v.face.split(/_/g)[2] + '.png';
-              $(div).append(img);
+                var img = document.createElement('img');
+                img.src='images/facegenerator/fg_beard_' + v.face.split(/_/g)[2] + '.png';
+                $(div).append(img);
 
-              var img = document.createElement('img');
-              img.src='images/facegenerator/fg_mouth_' + v.face.split(/_/g)[3] + '.png';
-              $(div).append(img);
+                var img = document.createElement('img');
+                img.src='images/facegenerator/fg_mouth_' + v.face.split(/_/g)[3] + '.png';
+                $(div).append(img);
 
-              var img = document.createElement('img');
-              img.src='images/facegenerator/fg_eyes_' + v.face.split(/_/g)[4] + '.png';
-              $(div).append(img);
+                var img = document.createElement('img');
+                img.src='images/facegenerator/fg_eyes_' + v.face.split(/_/g)[4] + '.png';
+                $(div).append(img);
+              }
 
               $(td).append(div);
               $(tr).append(td);
@@ -331,9 +330,6 @@ if( !empty($csv) ){
       alert( 'Error: Nicht alle Teams der Startliste sind in der DB vorhanden!');
     }
 
-
-
-
   </script>
 
   <form method="POST">
@@ -366,7 +362,7 @@ if( !empty($csv) ){
           <th>Team</th>
           <th><i class="fas fa-trophy" title="Pokalgewinn"></i></th>
           <th><i class="fas fa-crown" title="Meistertitel"></i></th>
-          <th><i class="fas fa-star" title="knapp gescheitert"></i></th>
+          <th><i class="fas fa-star" title="im Finale gescheitert"></i></th>
           <th title="Siege">S</th>
           <th title="Unentschieden">U</th>
           <th title="Niederlagen">N</th>
@@ -429,6 +425,8 @@ if( !empty($csv) ){
     <table id="tabelle_team" class="tabelle d-none" ondblclick="backToActiveTable()">
       <thead>
         <tr>
+          <th></th>
+          <th>Nt</th>
           <th>Spieler</th>
           <th>Alter</th>
           <th>S/T/A</th>
@@ -474,10 +472,6 @@ if( !empty($csv) ){
     </table>
   </div>
 
-
-
-
-
 </body>
 
 </html>
diff --git a/html/assets/css/custom.scss b/html/assets/css/custom.scss
index 350dea50c8e177056d03e4d1945cdc6f877aee29..784671c87a3ec2b082c2224edbaeca9b6870f715 100644
--- a/html/assets/css/custom.scss
+++ b/html/assets/css/custom.scss
@@ -259,7 +259,11 @@ tr.stats {
 #tabelle_team {
   tr {
     td,th {
-      &:nth-child(1) { width: 350px; text-align: left; }
+
+      &:nth-child(1) { width: 20px; }
+      &:nth-child(2) { width: 30px; }
+      &:nth-child(3) { width: 270px; }
+      /* &:nth-child(4) { width: 50px; } */
     }
   }
 }
@@ -281,6 +285,7 @@ td.n { color: firebrick; }
 .fa-meh-rolling-eyes { color: #a42; }
 .fa-crown { color: goldenrod; }
 .fa-trophy { color: goldenrod; }
+.fa-skull { color: #a42; }
 
 
 #saisons {
diff --git a/html/assets/js/script.js b/html/assets/js/script.js
index 54fc37afc5ff5dde5327d97aa127cb19552d9721..59decdc993fce797089378fbe15fbf7189ab4133 100644
--- a/html/assets/js/script.js
+++ b/html/assets/js/script.js
@@ -433,6 +433,7 @@ function calculatePunktestand(saison,runde,show=true){
   $(tabelle).html('');
 
   var TabelleLast= ( saison > 26 ) ? calculateAllPunktestand()[saison-27] : [];
+  var M = calculateMeistertitel();
   Tabelle.forEach(
     function(v,i){
       var border=SAISON_SETTINGS[saison - 26] == i+1 ? 'dashed ' : '';
@@ -447,8 +448,8 @@ function calculatePunktestand(saison,runde,show=true){
 
       var S=t.reduce( (a,b) => a+b );
       var pokal=ERGEBNISSE.filter((a) => ( a.runde=='F' && ( parseInt(a.TH) > parseInt(a.TA) && a.H.toLowerCase() == v.nt.toLowerCase() || parseInt(a.TH) < parseInt(a.TA) && a.A.toLowerCase() == v.nt.toLowerCase() ) ) ).length;
-      var meistertitel=calculateAllPunktestand().filter((a) => ( a[0].nt == v.nt.toLowerCase() ) ).length;
-      var finalist=( calculateAllPunktestand().filter((a) => ( a[1].nt == v.nt.toLowerCase() ) ).length + ERGEBNISSE.filter((a) => ( a.runde=='F' && ( a.H.toLowerCase() == v.nt.toLowerCase() && a.TH < a.TA || a.A.toLowerCase() == v.nt.toLowerCase() && a.TH > a.TA ) ) ).length );
+      var finalist=ERGEBNISSE.filter((a) => ( a.runde=='F' && ( parseInt(a.TH) > parseInt(a.TA) && a.H.toLowerCase() == v.nt.toLowerCase() || parseInt(a.TH) > parseInt(a.TA) && a.A.toLowerCase() == v.nt.toLowerCase() ) ) ).length;
+      var meistertitel=M[v.nt.toLowerCase()] ? M[v.nt.toLowerCase()] : 0;
 
       tmp+='<td class="'+border+'">'+S+'</td>';
       tmp+='<td class="'+border+'"><img class="flags" src="./images/flags/'+(( v.flag ) ? v.flag : v.nt.toLowerCase())+'.svg"> <a href="javascript:calculateTeam('+((saison == 0 && false) ? SAISON_NOW : saison)+',\''+v.nt+'\')">'+v.name.replace(/\(NL\)/g,'<sup>'+v.nt.toUpperCase()+'</sup></a>')+' <a href="'+v.link+'" target="ultrasoccer"><i class="fas fa-link"></i></a>'+(( trophy.toLowerCase() == v.nt.toLowerCase() ) ? ' <i class="fas fa-trophy"></i>' : '') +
@@ -477,6 +478,8 @@ function calculateTabelle(saison,param){
     function(v,i){
       var team=TEAMS.filter( (a) => ( a.nt == v[1].nt ) );
 
+      var tr=document.createElement('tr');
+
       if( team.length == 0 ){
         var flag = document.createElement('img');
         flag.classList='flags';
@@ -492,25 +495,29 @@ function calculateTabelle(saison,param){
         var face = document.createElement('td');
         face.classList='face';
 
-        var img = document.createElement('img');
-        img.src='images/facegenerator/fg_head_' + v[1].face.split(/_/g)[0] + '.png';
-        $(face).append(img);
+        if( v[1].face.split(/_/g).length == 5 ){
+          var img = document.createElement('img');
+          img.src='images/facegenerator/fg_head_' + v[1].face.split(/_/g)[0] + '.png';
+          $(face).append(img);
+
+          var img = document.createElement('img');
+          img.src='images/facegenerator/fg_hair_' + v[1].face.split(/_/g)[1] + '.png';
+          $(face).append(img);
+
+          var img = document.createElement('img');
+          img.src='images/facegenerator/fg_beard_' + v[1].face.split(/_/g)[2] + '.png';
+          $(face).append(img);
 
-        var img = document.createElement('img');
-        img.src='images/facegenerator/fg_hair_' + v[1].face.split(/_/g)[1] + '.png';
-        $(face).append(img);
+          var img = document.createElement('img');
+          img.src='images/facegenerator/fg_mouth_' + v[1].face.split(/_/g)[3] + '.png';
+          $(face).append(img);
 
-        var img = document.createElement('img');
-        img.src='images/facegenerator/fg_beard_' + v[1].face.split(/_/g)[2] + '.png';
-        $(face).append(img);
+          var img = document.createElement('img');
+          img.src='images/facegenerator/fg_eyes_' + v[1].face.split(/_/g)[4] + '.png';
+          $(face).append(img);
 
-        var img = document.createElement('img');
-        img.src='images/facegenerator/fg_mouth_' + v[1].face.split(/_/g)[3] + '.png';
-        $(face).append(img);
+        }
 
-        var img = document.createElement('img');
-        img.src='images/facegenerator/fg_eyes_' + v[1].face.split(/_/g)[4] + '.png';
-        $(face).append(img);
 
         var flag = document.createElement('img');
         flag.classList='flags';
@@ -535,8 +542,6 @@ function calculateTabelle(saison,param){
       var attr=document.createElement('span');
       attr.innerHTML=((v[1].attr != undefined) ? v[1].attr : '').split(' ').map( (a) => ( a != '' && a != 'fas' ? '<i class="fas '+a+'"></i>' : '' ) ).join('');
 
-      var tr=document.createElement('tr');
-
       var td=document.createElement('td');
       td.innerText=(i+1);
       tr.append(td);
@@ -581,8 +586,10 @@ function calculateTeam(saison,nt){
   var n=SPIELER.filter( (a) => ( a.nt == nt ) ).map( (b) => ( [ b.id, STATISTIK[b.id] ] ) ).filter( (c) => ( c[1] !== undefined ) ).map(
     function(v,i){
 
-      console.log(v,i);
       var team=TEAMS.filter( (a) => ( a.nt == v[1].nt ) );
+
+      var tr=document.createElement('tr');
+
       if( team.length == 0 ){
         var flag = document.createElement('img');
         flag.classList='flags';
@@ -595,28 +602,34 @@ function calculateTeam(saison,nt){
 
       } else {
 
-        var face = document.createElement('span');
+        var face = document.createElement('td');
         face.classList='face';
 
-        var img = document.createElement('img');
-        img.src='images/facegenerator/fg_head_' + v[1].face.split(/_/g)[0] + '.png';
-        $(face).append(img);
+        if( v[1].face.split(/_/g).length == 5 ){
+          var img = document.createElement('img');
+          img.src='images/facegenerator/fg_head_' + v[1].face.split(/_/g)[0] + '.png';
+          $(face).append(img);
 
-        var img = document.createElement('img');
-        img.src='images/facegenerator/fg_hair_' + v[1].face.split(/_/g)[1] + '.png';
-        $(face).append(img);
+          var img = document.createElement('img');
+          img.src='images/facegenerator/fg_hair_' + v[1].face.split(/_/g)[1] + '.png';
+          $(face).append(img);
 
-        var img = document.createElement('img');
-        img.src='images/facegenerator/fg_beard_' + v[1].face.split(/_/g)[2] + '.png';
-        $(face).append(img);
+          var img = document.createElement('img');
+          img.src='images/facegenerator/fg_beard_' + v[1].face.split(/_/g)[2] + '.png';
+          $(face).append(img);
 
-        var img = document.createElement('img');
-        img.src='images/facegenerator/fg_mouth_' + v[1].face.split(/_/g)[3] + '.png';
-        $(face).append(img);
+          var img = document.createElement('img');
+          img.src='images/facegenerator/fg_mouth_' + v[1].face.split(/_/g)[3] + '.png';
+          $(face).append(img);
 
-        var img = document.createElement('img');
-        img.src='images/facegenerator/fg_eyes_' + v[1].face.split(/_/g)[4] + '.png';
-        $(face).append(img);
+          var img = document.createElement('img');
+          img.src='images/facegenerator/fg_eyes_' + v[1].face.split(/_/g)[4] + '.png';
+          $(face).append(img);
+        } else {
+          face.innerHTML = '&nbsp;';
+        }
+
+        tr.append(face);
 
         var flag = document.createElement('img');
         flag.classList='flags';
@@ -641,11 +654,11 @@ function calculateTeam(saison,nt){
       var attr=document.createElement('span');
       attr.innerHTML=((v[1].attr != undefined) ? v[1].attr : '').split(' ').map( (a) => ( a != '' && a != 'fas' ? '<i class="fas '+a+'"></i>' : '' ) ).join('');
 
-      var tr=document.createElement('tr');
-
       var td=document.createElement('td');
-      td.append(face);
       td.append(flag);
+      tr.append(td);
+
+      var td=document.createElement('td');
       td.append(attr);
       var a_=document.createElement('a');
       a_.href='https://ultrasoccer.de/playerprofile/?id='+v[0];
@@ -736,7 +749,6 @@ var R=undefined;
 function showLastResults(H,A){
   $('#lastresults').toggleClass('d-none',false);
   R=ERGEBNISSE.filter((a) => ( a.H==H && a.A==A || a.A==H && a.H==A) ).slice(-5);
-  console.log(R)
   $('#lastresults table tbody').html(R.map(
       function(c){
         var teamH=TEAMS.filter( (a) => ( a.nt == c.H ) );
@@ -793,8 +805,6 @@ function showLastResults(H,A){
   </tr>'
   );
 
-  console.log( 'III',d )
-
 }
 
 var ignore_hidelastresults=false;
@@ -819,3 +829,19 @@ function calculateAllPunktestand(){
   }
   return T;
 }
+
+
+function calculateMeistertitel(){
+
+  var M = {};
+  var T = calculateAllPunktestand();
+  T.forEach(
+    function(v,i){
+      if( M[ v[0].nt ] == undefined ) M[ v[0].nt ] = 0;
+      M[ v[0].nt ]++;
+    }
+  );
+
+  return M;
+
+}