Refactor `BattleSide` to use prototypes