I think BaseTile and Tile should be named differently. There is nothing special about Tile... it's just a simple subclass of BaseTile, but BaseTile is a very important class that will be used by many people. So I'd recommend renaming BaseTile to Tile, since it is the main Tile class. And I would rename Tile to something like SimpleTile, BasicTile, or DefaultTile, because that's what it is. It's an example of what you could do with subclassing tiles, and is mainly just there for convenience. I don't feel that strongly about this, but figured it was worth mentioning.