added onScrollEnd callback