closes #2 and closes #8