fix #33
fix #5
fix #4