clean up
merge Hao Zhou's work
add some description