add listener lua callback