nice refactoring
improve specs