reworked scroll logic yet again and added top and bottom docking