Implement maps, rewrite icons module to use a map