Traversable mixin! That would be great! As for API, probably best just would work out what your current needs are (I assume you have a current need ;-), and implement that first. Most of the rest wil probbly fall out from there, and then others can offer additional suggestion for functionaity. That's how I'd probbly go about it, anyway. Keep me informed and I'd be glad to help in any way I can. HTH, trans.