Add TileService
Move tile loading to TileService