closes #1
fixes #2
closes #3