refactoring, spec init