Fixes #46. Fixes #41. Fixes #40. Fixes #30. Fixes #24.