Also, why don't we drop the fx.call(this, …) and just use fx(…) instead. I don't see a compelling need to preserve the *this* context, especially since we don't in root.add below.