More refactoring. Interim work on user specs.