track tile visiblity & map view bounds, and only render tiles within bounds
save tiles up to 2 zoom levels away (instead of 1), and make configurable