working better now, mapapi.tileSource.requestTile now returns the tile if it has already been loaded in addition to firing the success callback if supplied.
using success callback to set dirty flag