add background thread for fill