improve run method
A tm should be runnable multiple times.
Each time run is called the tm must be set again to a inital state.