Now using a swing timer and directly updating the ui in the actionPerformed method. This way we don't need a new thread and we
don't need to use swing's invoke later which means the performance is now much much better.