This is much too big a commit. I'm sorry. I should have committed it in several smaller chunks. No doubt I'll pay
Another massive commit. Sorry