I am having a problem with jQuery's .filter method. My code is as follows (heavily stripped of not relevant bits).

```
(function($) {
    $.ticker = function( el, options ) {
        // to avoid scope issues, use 'base' instead of 'this'
        var o, base = this;

        base.el = el;
        base.$el = $(el);

        base.init = function() {
            base.options = o = $.extend( {}, $.ticker.defaultOptions, options );
            base.$items = base.$el.find(' ul > li');
            base.timer = null;

            base.startTimer();
        }

        base.animate = function( ) {
            base.$items.filter(':eq(0)').appendTo(base.$el.find('ul'));
        }

        // initialise the object
        base.init();
    };

    $.ticker.defaultOptions = {
        delay: 2000,
        transitionSpeed: 700
    }

    $.fn.ticker = function(options) {
        return this.each(function() {
            (new $.ticker(this, options))
        })
    }
})(jQuery);

```

What I would expect this to do, is every 2 seconds, the "base.animate" function would move the first LI item from the top to the bottom of the UL tag. This works the first time, but for subsequent iterations, the *last* LI item (which used to be first) is moved to the end of the UL tag instead. It seems the **.filter(':eq(0)')** is constantly referring to what used to be the first item, rather than referencing the "Current" first LI item.

How can I get around this?

Thanks