modifies nothing