closes #7 and closes #25