but still support __parent__