resolves #3, resolves #1, theoretically