Introduce more cleverness in IO