Add the preliminary Battle code, with a lot of TODO