working on sicp section 3.2