It may not be slow, but this crazy complexity is probably a hint at why it can't even scroll up without jumping to the beginning of time.