More refactoring + specs