little structure change in api module; generalized 'scroll' event