Redid merge.
Major overhaul.