This is brilliant and what I was looking for.  Your implementation of hydrators was missing from my toolbox and I'm pleased to see you pick it up.