Closes #17, closes #15.