closes #27 closes #35