Implement backwards scrolling, refactor, code cleanup