Hydrator contains two responsibilities it is Hydration and Extraction, my suggestion is to segregate this responsibilities at least with Interfaces.