added __str__ functions for spec objects
refactored __str__ functions for specs
separate required from provided in __str__ for specs