removed cast_const from Recursive()