1. abstracted out TileID into its own header. 2. Better header includes and forward declarations