revise from CS
add keywords, some revises from CS