work in progress
done
cleanup
handle swipe events