Organization and improvement. I've also added an AbstractTile.