reorganized the spec