Finished, but need more revise