only load map after location has been set, refactor using utilities