closes #10 closes #12