do not always allocate a new slice