fix several thing
merge