This resolves #1, resolves #2, closes #3