factored out data types from Tile