Fixes #317. Fixes #296. Fixes #302. Fixes #313. Fixes #303.