#1 Refactored specifications to be more modular