updated IO stuff