after creation. Becuase we put handler.Start() call after timeout check and lastActivity is initialized in Start(), this will lead to a incorrect timeout. Also because we will call handler.Start() right after the constructor and timeout check, so it makes no difference where we put the initializtion of lastActivity. We won't do this again in Start() because DateTime.Now will consumes a lot of cpu time.tags/3.3.1