added piece exchange feature