added caching to map_control - TODO: mobile doesn't like promises