log map layer updates
make TileLayer abstract and create TileLoaders in subclass