edits, refinements, needs work