each observer object that wants to register himself by a subject has to
call the attach function, otherwise the subject will not be able to
inform it when that state in our when it receives an new message
run method is always invoked by the thread.start() function
repaints the simulator picture every 40ms when no fog is on
the highway, if there is one repaint will be called every 70ms
so that it looks like that the cars are driving slowlier