implementing battle