Decouple IO