refactor listen API
refactor listen API