fix #89
fix #90
fix #91