don't change in place