Work in progress...
Improve previousVisiblePosition()