so initial tests suggest this is working well, but it's not exactly the clearest code, so let's call this a rough proof of concept of recursion in the bot