per perigrin: drop MI, add IO::Async and MBT