add SpecificationInterface