lots and lots of edits in this one