This definitely needed its own thread.