Add smart object listener