CAL-684 refacor api, add listener api