add event cb support