comb through of map api and others, still unfinished