recursive references added