Closes #18 and closes #24