Closes #23. Closes #14.