fixed issues #1, #2, #3, #4, and #5