final revise from CS