refactor tileWidth property, add mapWidth property