add several new hooks
rename some option class functions name