preserve input