I keep going back and forth if we should maintain this class or not, since now that threadly has Future support it is a lot less useful. However, while examining it, I did think of a couple use cases where it may be useful.  So I decided to keep it for now, and reduced some code duplication which existed within it.