Break self avoidance rule into 2 scenarios: instance vs class objects