This is really much uglier, and indented wrong.