update and fix #4 #5