Now uses a ThreadPool for much faster loading
Minor refactoring