Thanks everyone for the nice comments and the additional points about what can be passed as a callback. The 5.3 features make this even more fun and interesting!