mutates only on left