Closes #14, Closes #12
Closes #13