Fixes #1. Fixes #2. Fixes #3. Fixes #4.