I really like the recursive aspect. Having it mirror your previous actions is a really interesting concepts. (I'd be curious as to how you developed it. Have a repo I could look at? Cool if not.)
Simply concept, but I could see it being not executed all that well. Not the case here. You did a great job.