Closes #86. Closes #111.