support timer and smart ptr