completed 2010 post 5 - composing callbacks