use hydrate() to get rid of several hacks