Re-design the IO manager