add Q.Promise for progress notification.
fetching