add recycle listener support