This fixes #1 by changing everything.