Solutions to SICP exercies