         this._stack = []
         this._step = -1
         this._prefixes = {}
+        this._loop = 1
+        this._direction = true
 
         return this
 

                        if key == "duration" || key == "delay" || key == "easing" || key == "beforeAnimation" || key == "afterAnimation"
                            continue
                        el.style[this.getPrefix(key)] = value
                            
                nextTimeout = setTimeout ->
                    # after animation function
                    anm.afterAnimation() if typeof anm.afterAnimation == "function"

                    # continue chained animations
                    this._play()

                    clearTimeout(nextTimeout)
                , anm.delay + anm.duration

            # no more stacked animations
            else
                this._callback() if this._callback?
                this._step = -1

                # loopings that are numbers are finite
                if typeof this._loop == "number"
                    this._loop -= 1
                    if this._loop > 0
                        this._play()
                    else
                        this.reset()

                # strings are infinite
                else if typeof this._loop == "string"
                    if this._loop == "alternate"
                        this._direction = !this._direction
                        this._play()
                    else if this._loop == "infinite"
                        this._play()

            return this

        # set loop
        loop: (looping) ->
            this._loop = looping
            return this

        # reset Moon animation
