ch.04 recursive objects