Extensive reworking of spec