Implementation of battle