Closes #15 closes #17