closes #6 closes #10