use a background loader thread for data

use a simple background loader thread
always use cached data and have the loader thread refresh the data on
each load
this is a very simple approach to using async data loading