refactors listeners and throttles retrieveAll