Closes #5, closes #3