some hacking, and a bit of editing