fix #2, fix #5