revised a lot of thing