added reverse direction and Ability choosing