zeroed does not require copy