move TileMap into a seperate class