closes #8
closes #7
closes #4