This probably deserves its own thread.