Needs to be threaded or else it wont properly update and repaint.