So I see that when it's woman.husband = man; and man.wife = woman;, it passed through. If it's the other way around (man = woman.husband or woman = man.wife), it does not pass condition 3 and 4. Can someone please explain to me? What's the difference between man = woman.husband and woman.husband = man ??? public class Solution { public static void main(String[] args) { Man man = new Man(); Woman woman = new Woman(); woman.husband = man; man.wife = woman; }