implement circular inheritance prevention