Added a progress indicator and made the interface snappier by using GCD better