Closes #79
Closes #80
Closes 81