closes #25
addresses #5
addresses #6