big update and modify add some options