many edits, but far from done