continuing Arnaud refactoring