working scroll adjustment. todo: refactor