revise v2
finished the content