fix #57 #58 #59