Closes #8, Closes #4