restructuring the spec