Closes #13
Closes #9
Closes #7
Closes #8