added client side tile cache