incorporate SMD into ZConstraint,it does not sound a good choice, next commit will seperate SMD and ZConstraint