Closes #2 and closes #18