fix #3
fix #12
fix #12