thinking recusively