avoiding more allocation side-effects