initial code OK
modifies nothing