Needs its own thread. Holy shit