Fixes issues #1, #2, #3, #4, #5, #6, #7, and #8.