Closes #41. Closes #19.