closes #5
closes #6
closes #7
closes #8
closes #9