Refactored the scroll model into a general class for simpler logic and loading