discrete edit