fix #3 fix #5