add delegate for single tap