modify callback interface to com like