updated with vertical scroller support and touch events