closes #41
closes #43
closes #42