some comments + terminal recursive + variable depth and max_rep