refactored spec classes