update
finally fix bugs