Refactor polymorphic branching

@yaymukund @bglusman 

Good refactor of collection reactions. Specifically their parsing.

There is more code then before and longer variable names. Longer code = bad. But I'm writing in a trade-off. Less succinct code for much clearer code.

Please let me know what you think.