Fixes #299. Fixes #301. Fixes #305. Fixes #306. Fixes #307.