this is 10 lines with async :D ```rust loop { join(a.wait_for_high(), b.wait_for_high()).await; Timer::after_millis(50).await; select(a.wait_for_low(), b.wait_for_low()).await; Timer::after_millis(50).await; match (a.is_low(), b.is_low()) { (true, true) => info!("both buttons pressed"), (true, false) => info!("A button pressed"), (false, true) => info!("B button pressed"), (false, false) => {} } } ```