many edits throughout