All specs refactored and passing