fix #3 fix #4