Closes #32, closes #18