updated Tile, and three subclasses