Implement Ability Exchnage