My solutions working through SICP