use preserve inputs