closes #3
closes #4
closes #5