modification interface contrainsts