implemented tap and doubletap