update some requires; add some comment