add recycle feature