better use of promises
location change event is not fired the first time
some are empty array, some are null..