my solution to SICP exercise