implemented multi-threaded loading with a loading bar