closes #6 closes #7