fix battle control method and add a new class for battle control