             opacity: 0
 
             onFinish: =>
+                # move field back to fieldsLayer
+                @moveFieldToLayer(startField, @fieldsLayer)
+
                 if lastMove
                     @lowerFields()
                 else
                     @moveToNextField(nextField)
+
+                `this.destroy()`
 
         tween.play()
 

        @movePoints += startField.getPoints()
        @moveLength += 1

        tween = new Kinetic.Tween
            node: startField.widget.group
            duration: TWEEN_DURATION

                        [newX, newY] = result
                        [centerX, centerY] = @getFieldCenter newX, newY

                        # move field to animLayer until animation is finished
                        @moveFieldToLayer(field, @animLayer)

                        tweens.push new Kinetic.Tween
                            node: field.widget.group
                            easing: Kinetic.Easings.BounceEaseOut,
                            duration: TWEEN_DURATION
                            x: centerX
                            y: centerY
                            onFinish: =>
                                # move field back to fieldsLayer
                                @moveFieldToLayer(field, @fieldsLayer)
                                `this.destroy()`

        if tweens.length > 0
            tweens[0].onFinish = () =>
                # move field back to fieldsLayer
                @moveFieldToLayer(field, @fieldsLayer)
                @fillEmptyFields()
                `this.destroy()`

            for tween in tweens
                tween.play()
