It's even recursive.