Cascading - not ready for merge

I think we'll still need something like this dispatch function here, but I'd make it a multimethod.