add gesture listener