Added threaded reading