implemented basic gesture events