fix #118 #117 #116 #115