fix #29 #28