I think recursive calls still wouldn't work: if algo1.handle_data first calls algo2.handle_data and then calls ```order```, ```order``` would use algo2.  Thoughts?