Closes #2
Closes #3
Closes #4