idea about using io: