Segregation HydratorInterface

HydratorInterface contains two responsibilities it is Hydration and Extraction, my suggestion is to segregate this responsibilities at least with Interfaces. Some times you need only extract from objects who implement both hydrate and extract.