revise readall