Move PreserveAttribute to a different file so it's more obvious we can use it erry'where