improved swipe interaction