Use an InputInterrupt callback instead of polling for changes