redo sicp ch. 4