fix #13 #12 #10 #9
fix #9