More specs & refactorings