Major rework. Commiting to not lose work.