closes #5 closes #4