handle touch cancel properly!