Fixes #5. Fixes #6. Fixes #7. Fixes #8. Fixes #9.