fix #3, fix #5