My first legitimate use case for recursive programming!!!! hell yeah