* add listening func