closes #1, closes #2, closes #7