improve dupfun
improve