function animate($callback)
        {
            var dfd = $.Deferred();
    
            var $this = $('h2');
            var $wordList = $this.text().split("");
            $this.text("");
    
            $.each($wordList, function (idx, elem) {
                var newEL = $("<span/>").text(elem).css({
                    opacity: 0
                });

                newEL.appendTo($this);
                newEL.delay(idx * 125);
                newEL.animate({
                    opacity: 1
                }, 500, 'swing', function() {
                    if ($wordList.length === idx + 1)
                    {
                        dfd.resolve();
                    }
                });
            });

        return dfd.promise();
    }