fix #12 #13 #14