refactored the spec file to be much cleaner