Scroller.implement({
    scroll: function(){
     var size = this.element.getSize(), scroll = this.element.getScroll(), pos = this.element.getOffsets(), scrollSize = this.element.getScrollSize(), change = {'x': 0, 'y': 0};
     for (var z in this.page){
       if (this.page[z] < (this.options.area + pos[z]) && scroll[z] != 0)
         change[z] = (this.page[z] - this.options.area - pos[z]) * this.options.velocity;
       else if (this.page[z] + this.options.area > (size[z] + pos[z]) && scroll[z] + size[z] != scrollSize[z])
         change[z] = (this.page[z] - size[z] + this.options.area - pos[z]) * this.options.velocity;
     }
     if (change.y || change.x) this.fireEvent('change', [scroll.x + change.x, scroll.y + change.y]);
   }
 });