change IO, add some printInfo