fix #2 and #3 bug