Closes #2, closes #4