tileset abstraction