New specs + refactoring