Closes #62, closes #61, closes 60.