fix #19
fix #28