closes #6 and closes #8