fix #166 #167
fix #170
fix #168