fix issues: #1, #2, #4