introduce recursive call
we shouldn't rely on openstruct implementation in tests