                 if field.direction == 'none'
                     field.resetRandoms()
 
+                    # move field to animLayer until animation is finished
+                    @moveFieldToLayer(field, @animLayer)
+
                     tweens.push new Kinetic.Tween
                         node: field.widget.group
                         opacity: 1
                         duration: TWEEN_DURATION
+                        onFinish: =>
+                            # move field back to fieldsLayer
+                            @moveFieldToLayer(field, @fieldsLayer)
+                            `this.destroy()`
 
         @refreshWidgets()
 
         if tweens.length > 0
             tweens[0].onFinish = () =>
+                # move field back to fieldsLayer
+                @moveFieldToLayer(field, @fieldsLayer)
                 @finishMove()
+                `this.destroy()`
 
             for tween in tweens
                 tween.play()


    board: null
    stage: null
    layer: null
    level: null
    topBarWidget: null


                        [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()
