moved hidden parent logic to core