add more complicated case