More refactor.  None of this works yet.