anchor.diff:     * Bei einer Kollision einen neuen Tetromino fallen lassen.
      * @param var move = neue Position vom Tetromino
      */
  -  checkCollisions(var move) {
  -    // Prüfen ob der Tetris Stein die Seiten verlässt
  -    if (notOnSide(move)){
  -      // Prüfen ob der Stein den Grund des Feldes erreicht
  -      if (notOnGround(move)){
  -        //pruefen ob der Tetromino mit einem bereits gesetzten Tetromino kollidiert
  -        if(!tetrominoCollision(move)) {
  -          //den Tetromino in der alten Position entfernen
  -          this._stone.forEach((piece) {
  -            this._game._field[piece['row']][piece['col']].isActive = false;
  -            this._game._field[piece['row']][piece['col']].color = #empty;
  -          });
  -          //den Tetromino an die neue Position setzen
  -          _stone = move;
  -          this._stone.forEach((piece) {
  -            this._game._field[piece['row']][piece['col']].isActive = true;
  -          });
  -        } else {
  -          //falls der aktuelle Tetromino mit einem bereits gesetzten Tetromino
  -          //kolliediert muss unterschieden werden, ob von oben oder von der Seite
  -
  -          //von oben
  -          if (this._dc == 0){
  -            //den Tetromino bei einer Kollision an der Position setzen
  +  checkCollisionsAndMoveTetromino(var move) {
  +    //TODO: further refactoring to seperate functionality would be nice
  +    if(notOnSide(move)){
  +      if(notOnGround(move)){
  +        if(!tetrominoCollision(move)){
  +          this.moveToNewPosition(move);
  +        } else{
  +          bool movesSideways = (this._dc != 0);
  +          if(movesSideways){
  +            //ungueltige seitwaerts Bewegung rueckgaening machen
  +            move.forEach((piece) {piece['col'] -= this._dc;});
  +            this.moveToNewPosition(move);
  +          } else{
  +            //Tetromino in der Position fest setzen
               this._stone.forEach((piece) {
                 this._game._field[piece['row']][piece['col']].isActive = false;
               });
               //TODO: check if a row was completed
               nextTetromino();
  -          } else{
  -            //falls die Tetrominoes von der Seite kollidieren, faellt der
  -            //aktuelle Tetrominoe nach unten
  -            this._stone.forEach((piece) {
  -              this._game._field[piece['row']][piece['col']].isActive = false;
  -              this._game._field[piece['row']][piece['col']].color = #empty;
  -            });
  -            //die Seitwaertsbewgung des aktuellen Tetrominos rueckgaening machen
  -            move.forEach((piece)  {
  -              piece['col'] -= this._dc;
  -            });
  -            _stone = move;
  -            this._stone.forEach((piece) {
  -              this._game._field[piece['row']][piece['col']].isActive = true;
  -            });
             }
           }
  -      } else {
  +      } else{
  +        //falls der Tetrmino aud den Boden faellt wird er gesetzt
           this._stone.forEach((piece) {
             this._game._field[piece['row']][piece['col']].isActive = false;
           });
  
positive.code:         { 'row' : _stone.elementAt(3)['row'] + _dr,  'col' : _stone.elementAt(3)['col'] + _dc  }
        ];
  
        // Methode aufrufen um Kollisionen zu prüfen,
        // wenn Ja neuer Tetromino fallen lassen
        // ansonsten Stein Setzen
        checkCollisions(_move);
  
      }
  
      /**
  
negative.code:         // Methode aufrufen um Kollisionen zu prüfen,
          // wenn Ja neuer Tetromino fallen lassen
          // ansonsten Stein Setzen
          checkCollisionsAndMoveTetromino(_rotate);
  
        }
  
  