Fixes #293. Fixes #294. Fixes #308. Fixes #123. Fixes #315.