add extra for base::Timer
use shared_ptr to manage TimedCall and  add timer for base::Timer